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