如果特定列中的值小于其他列中的值,则仅选择行

时间:2010-05-18 04:47:13

标签: select r rows

我正在使用R并且需要选择年龄(死亡年龄)小于或等于laclen(哺乳期长度)的行。我试图创建一个新的数据框,只包含行/ ids,其中column'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 个答案:

答案 0 :(得分:86)

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

应该做的伎俩。方括号允许您根据逻辑表达式进行索引。

答案 1 :(得分:44)

您也可以

subset(df, aged <= laclen)

答案 2 :(得分:5)

如果你使用dplyr包,你可以这样做:

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