如果另一列中的值>创建具有逻辑值的新列。 0

时间:2016-05-07 16:43:17

标签: r if-statement dataframe

R的新手,请耐心等待。我有一个值为

的数据框
x y
1 2
4 4
5 3
6 0 

我想创建第三列,用TRUE或FALSE表示y列中的值是否为0。

x y z
1 2 TRUE
0 4 TRUE
5 3 TRUE
6 0 FALSE

3 个答案:

答案 0 :(得分:6)

>比较lhs和rhs以获得逻辑向量。通过将输出指定为新列('z'),我们在原始数据集'df1'中创建新列。

df1$z <- df1$y > 0

答案 1 :(得分:1)

您也可以使用&#34;空&#34;创建一个列。值以避免if-else循环。

这样的事情也可以起作用(尽管上面提出的解决方案当然更好):

df$z <- "False"
df$z[df$y > 0] <- "True"

如果您希望使用逻辑变量而不是字符串

,则可以转义引号

答案 2 :(得分:0)

更快的替代解决方案(尽管这只是在处理大型数据集时成为一个关键问题)

library(data.table)

setDT(df1)

df1[, z := y > 0]