R AND 运算符到新列

R AND Operator To New Column

我正在尝试学习 R(从长远来看这并不容易)并且我习惯于调用 AND 运算符来检查是否满足两个条件,然后将该输出插入到一个新的柱子。在 R 中,就像其他一切一样,这似乎很难做到。在我的问题中,我正在查看标记为 "PC" 的列是否等于 1 AND 标记为 "MF" 的列是否等于 0。如果是这种情况true 我希望 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

您可以使用 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

column labeled "PC" is equal to 1 AND a column labeled "MF" is equal to 0

your_data$WR = as.numeric((your_data$PC == 1) & (your_data$MF == 0))

没有 as.numeric 你会得到 TRUE/FALSE 而不是 0/1。

在以后的问题中,我建议展示你的一些尝试;那么答案可以帮助纠正普遍的误解,而不是仅仅为一个小问题提供代码。

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

输出:

> DT
   PC MF WR
1:  1  0  1
2:  2  1  0
3:  3  1  0
4:  4  1  0
5:  1  0  1