R AND运算符到新列

时间:2015-07-04 02:36:03

标签: r rstudio

我正在尝试学习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

3 个答案:

答案 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))]