2017-08-11 74 views
1

我在R A DF與值刪除行小於中的R

sample1 sample2 sample3 sample4 
price1 10 21 32 43 
price2 12 24 15 18 
price3 1 2 15 8 
price4 16 30 44 58 
price5 18 33 48 63 
price6 20 36 52 68 
price7 22 39 56 73 
price8 24 42 60 78 
price9 26 45 64 83 
price10 28 48 68 88 

我想執行一個操作,其中我想下降,在超過2列

具有值小於15的行

所以

price3 1 2 15 8 

將被刪除

回答

4

我們可以使用rowSums到CRE吃了邏輯矢量

df1[rowSums(df1 < 15) <=2 , , drop = FALSE] 
#  sample1 sample2 sample3 sample4 
#price1  10  21  32  43 
#price2  12  24  15  18 
#price4  16  30  44  58 
#price5  18  33  48  63 
#price6  20  36  52  68 
#price7  22  39  56  73 
#price8  24  42  60  78 
#price9  26  45  64  83 
#price10  28  48  68  88 
+0

我曾嘗試這個'df = df [rowSums(df> 15)> = 2,]'但對代碼沒有信心,你是否需要提及drop? – sbradbio

+1

@sbradbio它是需要特殊情況下,只有單行/列,以避免強迫它'矢量' – akrun

+1

啊我看thnks – sbradbio

1

apply版本

df[apply(df, 1, function(x) sum(x < 15) <= 2) ,] 
2

你可以查找該行具有小於15大於2點的值,並排除他們...

df <- cbind(12:21, 21:12, 12:21, 22:31) 
df 
KEEP <- sapply(1:nrow(df), (function(i){ 
    sum(df[i,]<15) <2 
})) 
final.df <- df[KEEP,] 
final.df 
+0

有趣,也會試試這個.. – sbradbio