select only rows if its value in a particular colu

2019-01-31 02:55发布

问题:

I am using R and need to select rows with aged (age of death) less than or equal to laclen (lactation length). I am trying to create a new data frame to only include rows/ids whereby the value of column'aged' is less than its corresponding 'laclength' value.

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 

the new data frame should look like this:

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

Any help would be appreciated!

Bazon

回答1:

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

Should do the trick. The square brackets allow you to index based on a logical expression.



回答2:

You can also do

subset(df, aged <= laclen)


回答3:

If you use dplyr package you can do:

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


标签: select r rows