爲什麼在下面的代碼中dplyr的filter
不會返回與基本R子集相同的數據幀?由於NA的原因,無法對數據幀進行子集(過濾)
事實上,他們沒有按預期工作。我想刪除觀察/行,其中,同時,b==1 AND c==1
。也就是說,我只想刪除第三行。
require(dplyr)
df <- data.frame(a=c(0,0,0,0,1,1,1), b=c(0,0,1,1,0,0,1), c=c(1,NA,1,NA,1,NA,NA))
filter(df, !(b==1 & c==1))
df[!(df$b==1 & df$c==1),]
這是一個解決方案,@ Hack-R。我認爲這不是最好的,但它的工作原理。在我看來,R(和dplyr)應該更好地處理這些類型的NAs,畢竟它們是生活的一部分。 –
@RodrigoRemedio是的,「NA」一直都是問題所在。相信我,我明白。 –
@RodrigoRemedio我又增加了2個解決方案 –