我试图在数据框中生成以数据框中两个(或更多)其他变量为条件的新变量。我相信 R 中的循环函数(即 lapply、sapply 等)对于此目的是有用且高效的。但是,我的方法有些不对劲,我不知道是什么。
M <- data.frame(x=c("A", "A", "B", "B"), y=c(1,2,1,2))
使用这个数据框,我想生成一个新列 z,其中包含 TRUE 且当且仅当且 且 的x == "A"
逻辑y == 1
。以下代码是我能想到的最好的,但似乎只评估我的第一个条件。
M$z <- sapply(M$x, function(x,y) if((x == "A") && (y == 1)) T else F, M$y)
- 可以出于我的目的修复此代码吗?
- 在 R 中是否有更好的方法,也许使用其他循环函数?