5

我正在尝试解决它,但无法做到。我想删除所有具有 '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
4

2 回答 2

7

如果要删除 B、C 或 D 列包含 0 或 many 的行:

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)),]
于 2012-09-05T13:55:43.717 回答
1

如果 tmp 是您的原始 data.frame 的名称,则以下工作:

tmp2 <- data.frame(Reduce(rbind,apply(tmp,1,function(x){if(any(x==0)){NULL}else{x}})))
于 2012-09-05T12:00:04.870 回答