выберите только строки, если его значение в определенном столбце меньше его значения в другом столбце - PullRequest
52 голосов
/ 18 мая 2010

Я использую R и мне нужно выбрать ряды с возрастом (возраст смерти), меньшим или равным лаклену (длина лактации). Я пытаюсь создать новый фрейм данных, включающий только строки / идентификаторы, в результате чего значение столбца'aged 'меньше соответствующего значения' laclength '.

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

Любая помощь будет оценена!

Bazon

Ответы [ 3 ]

87 голосов
/ 18 мая 2010
df[df$aged <= df$laclen, ] 

Должен сделать свое дело. Квадратные скобки позволяют индексировать на основе логического выражения.

44 голосов
/ 18 мая 2010

Вы также можете сделать

subset(df, aged <= laclen)
5 голосов
/ 15 ноября 2015

Если вы используете dplyr пакет, вы можете сделать:

library(dplyr)
filter(df, aged <= laclen)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...