Select only rows if its value in a particular column is less than the value in the other column

Bazon picture Bazon · May 18, 2010 · Viewed 235.9k times · Source

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

Answer

wkmor1 picture wkmor1 · May 18, 2010
df[df$aged <= df$laclen, ] 

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