Quantcast
Viewing all articles
Browse latest Browse all 3

Answer by IRTFM for Filtering data in a dataframe based on criteria

Given a dataframe "dfrm" with the names of the cities in the 'city' column, the population in the "population" column and the average summer temperature in the "meanSummerT" column your request for the subset meeting those joint requirements would be met with any of these:

subset( dfrm, population < 1e6 & meanSummerT > 70)dfrm[ which(dfrm$population < 1e6 & dfrm$meanSummerT > 70) , ]dfrm[ which( dfrm[[ 'population' ]] < 1e6 & dfrm[[ 'meanSummerT' ]] > 70) , ]

If you wanted just the names of the cities meeting those joint criteria then these would work:

subset( dfrm, population < 1e6 & meanSummerT > 70 , city)dfrm[ which(dfrm$population < 1e6 & dfrm$meanSummerT > 70) , "city" ]dfrm[ which(dfrm[['population']] < 1e6 & dfrm[['meanSummerT']] > 70) , "city" ]

Note that the column names are not quoted in the subset or following the "$" operator but they are quoted inside "[[". And note that using which can be dangerous if no lines of data match because instead of getting no lines you will get the entire dataframe.


Viewing all articles
Browse latest Browse all 3

Trending Articles