我正在尝试学习R(从长远来看并不容易)而且我习惯于能够调用AND运算符来检查是否满足两个条件,然后将该输出插入到新列中。在R中,就像其他一切一样,这似乎很难做到。在我的问题中,我正在查看标有“PC”的列是否等于1 AND 标记为“MF”的列等于0.如果这种情况为真,我希望R输出结果(作为1)到标记为“WR”的新列。如果“PC”或“MF”中存在任何其他值,我希望R将0输出到“WR”。
一些示例数据:
PC MF
1 1
3 1
2 1
4 1
1 1
9 1
2 1
1 1
5 1
5 1
4 0
6 0
8 0
1 1
7 0
1 1
答案 0 :(得分:3)
您可以使用ifelse()
声明:
示例数据:
df <- data.frame(PC=c(1,2,3,4,1), MF=c(0,1,1,1,0))
根据两个指定的条件
创建一个新列df$WR <- ifelse(df$PC==1 & df$MF == 0, 1, 0)
输出
> df
PC MF WR
1 1 0 1
2 2 1 0
3 3 1 0
4 4 1 0
5 1 0 1
答案 1 :(得分:3)
列标有&#34; PC&#34;等于1和标有&#34; MF&#34;的列。等于0
your_data$WR = as.numeric((your_data$PC == 1) & (your_data$MF == 0))
如果没有as.numeric
,您将获得TRUE / FALSE而不是0/1。
在以后的问题中,我建议您展示一些尝试;然后答案可以帮助纠正一般的误解,而不仅仅是为一个小问题提供代码。
答案 2 :(得分:2)
以self.navigationItem.hidesBackButton = NO/YES;
方式:
data.table
输出:
DT <- data.table(PC=c(1,2,3,4,1), MF=c(0,1,1,1,0))
DT[, WR:= as.numeric((PC == 1) & (MF == 0))]