2017-08-11 12 views
1

よりも私は以下2つの以上の列15よりも値を持つ行を削除したい操作を実行したいR削除行が少なく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 

におけるDFを有する

ので

price3 1 2 15 8 

たちはCREにrowSumsを使用することができます

答えて

4

を削除されます論理ベクトル

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、]'しかし、コードについては自信がなかったので、あなたは言及する必要がありますか? – sbradbio

+1

@sbradbio特別な場合には、 'ベクトル 'に強制するのを避けるために単一の行/列しかない場合に必要です – akrun

+1

ああ、thnksを参照してください – sbradbio

1

applyバージョン

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

を食べたあなたがルックアップすることができます行が2つの以上の値が15未満を持ち、それらを除外...

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

関連する問題