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個以上を含む行を削除する場合:

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 に答える