2016-04-28 91 views
-4

我有一個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 < - c(「O」,NA)[(a == 0)+ 1]' –

回答

1

你似乎一直在問隨機問題越來越多,但如果你只是想目標只有當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」] < - NA '),當然,這隻有在'c'已經存在的情況下才有效...... – Cath

+2

這只是創建了一個充滿NA的列。當然,這可能沒有錯,因爲我們現在都在猜測 –

+0

@RichardScriven,如果那裏已經有c的話。 –

0

使用data.table

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