基于条件语句添加新列的数据帧

问题描述:

我有一个DF基于条件语句添加新列的数据帧

a b 
0 0 
1 1 
2 1 
0 0 

我要添加列c因此,如果列a=1b=1c = NA 我该怎么办呢?我试过,如果和ifelse,但我得到错误 谢谢

+0

你可以尝试'C( “O”,NA)(A == 0)+ 1]' – Cath

+0

对不起,恐怕它确实增加了正确charachters到列'b' – HoHoHo

+0

要做到这一点,您需要实际完成这项任务:'df $ b

你似乎一直在问随机问题越来越多,但如果你只是想目标只有当b==1 & a==1然后就这样做。

df[which(b == 1 & a == 1),c('c')] <- NA 
#df[which(b == 1 & a == 1),]$c <- NA -- alternate. 
#df[(b == 1 & a == 1), ]$c <- NA -- another. 

这将以你想要的为目标并假设你已经创建了一列c。如果不是,只需使用0或者你想要的填充符来创建它。

df$c <- "filler"; 
+0

你不要紧d在你的第一行中有'which'和'c',你需要告诉在哪里寻找变量(所以'df [df $ b == 1&df $ a == 1,“c”] Cath

+2

这只是创建了一个充满NA的列。当然,这可能没有错,因为我们现在都在猜测 –

+0

@RichardScriven,如果那里已经有c的话。 –

使用data.table

library(data.table) 
setDT(df)[, c:= 0][a==1 & b==1, c:= NA][]