我正在尝试解决它,但无法做到这一点。我希望摆脱所有'0'值的行,但保留其余行的ID号。
ID B C D
1_2 34 42 12
1_3 34 32 2
1_4 0 0 0
1_5 12 33 12
输出应该是
ID B C D
1_2 34 42 12
1_3 34 32 2
1_5 12 33 12
答案 0 :(得分:5)
如果要删除列B,C或D中包含0或多行的行:
DF[apply(DF[c(2:4)],1,function(z) !any(z==0)),]
或仅当所有列B,C,D包含0:
时DF[apply(DF[c(2:4)],1,function(z) any(z!=0)),]
答案 1 :(得分:1)
如果tmp是原始data.frame的名称,则以下方法有效:
tmp2 <- data.frame(Reduce(rbind,apply(tmp,1,function(x){if(any(x==0)){NULL}else{x}})))