web-dev-qa-db-ja.com

特定の列の値が他の列の値よりも小さい場合、行のみを選択します

私はRを使用しており、年齢(死亡年齢)がlaclen(授乳期間)以下の行を選択する必要があります。列 'aged'の値が対応する 'laclength'値よりも小さい行/ IDのみを含む新しいデータフレームを作成しようとしています。

df:
 id1   id2    laclen    aged
9830  64526    26       6 
7609  64547    28       0 
9925  64551     3       0 
9922  64551     3       5 
9916  64551     3       8 
9917  64551     3       8 
9914  64551     3       2 

新しいデータフレームは次のようになります。

dfnew:
id1   id2    laclen    aged
9830  64526    26       6 
7609  64547    28       0 
9925  64551     3       0 
9914  64551     3       2

助けていただければ幸いです!

バゾン

55
Bazon
df[df$aged <= df$laclen, ] 

トリックを行う必要があります。角括弧を使用すると、論理式に基づいてインデックスを作成できます。

90
wkmor1

あなたもできる

subset(df, aged <= laclen)
46
Jonathan Chang

dplyrパッケージを使用すると、次のことができます。

library(dplyr)
filter(df, aged <= laclen)