我有一个data.table如下:
library(data.table)
dt <- fread(
"A B D E iso year
1 A 1 NA ECU 2009
2 B 2 0 ECU 2009
3 D 3 0 BRA 2011
4 E 4 0 BRA 2011
5 D 7 NA ECU 2008
6 E 1 0 ECU 2008
7 A 3 2 BRA 2012
8 A 4 NA BRA 2012",
header = TRUE
)
我想删除列E
为2
的行。
所以我想我可以做:dt<- setDT(dt)[E!=2]
,但这也删除了NA
。
我想我可以先用另一个数字替换所有NA,然后再将它们改回NA,但我宁愿直接这样做。
我如何告诉data.table
不理会NA
?
所需的输出:
dt <- fread(
"A B D E iso year
1 A 1 NA ECU 2009
2 B 2 0 ECU 2009
3 D 3 0 BRA 2011
4 E 4 0 BRA 2011
5 D 7 NA ECU 2008
6 E 1 0 ECU 2008
8 A 4 NA BRA 2012",
header = TRUE
)
简单地将您的条件扩展到
dt <- dt[E != 2 | is.na(E)]