2012-09-05 27 views
5

我正在嘗試對其進行分類,但無法做到。我想擺脫'0'值的所有行,但保持其餘行的ID號保持不變。如何刪除包含'0'的某些列的行,同時保留其餘行的行ID爲R

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 
+1

ID是數據框中的行名還是列? – seancarmody

+3

如果所有三列B,C和D均爲0或者其中至少有一列爲0,是否要刪除行? –

+0

dplyr解決方案,**過濾器(函數(z)任何(z!= 0), - ID)**?不起作用... –

回答

5
如果要刪除包含0線

或許多列B,C或D:

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)),] 
+0

謝謝!它工作 – Gongon

+0

我有一個非常基本的問題,但是1代表什麼? – Danka

+0

@ Danka- 1代表行。如果用2替換它,該命令將在列上起作用。 – VGu

1

如果TMP是你原來的data.frame,名以下工作:

tmp2 <- data.frame(Reduce(rbind,apply(tmp,1,function(x){if(any(x==0)){NULL}else{x}}))) 
相關問題