我有以下数据集,我想删除包含值NA的所有行; NA; NA;我怎么能这样做?
NAME; ID; REFERENCE_YEAR; VALUE
NA; NA; NA; 0
ABANO; 767; 1859; 0
ABANO; 767; 1860; -380
ABANO; 767; 1910; 47
NA; NA; NA; 0
ADAMS; 885; 1987; 0
ADAMS; 885; 1988; -2
ADAMS; 2923; 1997; NA
ADAMS; 2923; 1999; NA
ADAMS; 2923; 2000; NA
ADAMS; 2923; 2002; NA
ADAMS; 2923; 2007; NA
ADAMS; 2923; 2008; -17
NA; NA; NA; 0
AEU.PIRCHLKAR; 504; 1981; 0
NA; NA; NA; 0
NA; NA; NA; 0
答案 0 :(得分:0)
如果您只有四列,则调用每列并使其不合逻辑 这是一项艰巨的任务。
index = is.na(data$name) & is.na(data$ID) & is.na(data$REFERENCE_YEAR) &
(data$VALUE == 0)
data = data[-index, ]
如果您有更多列,则可以使用" apply"使用自定义功能。
答案 1 :(得分:0)
假设使用sep =""
读取数据df[!apply(df,1,paste,collapse="")=="NA;NA;NA;0;",]
答案 2 :(得分:0)
你可以尝试:
df[!(rowSums(is.na(df[,1:3]))==3 &!df[,4]),]
# NAME ID REFERENCE_YEAR VALUE
# 2 ABANO 767 1859 0
# 3 ABANO 767 1860 -380
# 4 ABANO 767 1910 47
# 6 ADAMS 885 1987 0
# 7 ADAMS 885 1988 -2
# 8 ADAMS 2923 1997 NA
# 9 ADAMS 2923 1999 NA
# 10 ADAMS 2923 2000 NA
# 11 ADAMS 2923 2002 NA
# 12 ADAMS 2923 2007 NA
# 13 ADAMS 2923 2008 -17
# 15 AEU.PIRCHLKAR 504 1981 0