Skip to content

Instantly share code, notes, and snippets.

@grosscol
Created February 5, 2018 17:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grosscol/3d9c0a98de7de5d29b3c747168c0cd54 to your computer and use it in GitHub Desktop.
Save grosscol/3d9c0a98de7de5d29b3c747168c0cd54 to your computer and use it in GitHub Desktop.
Filter ranges of values where the ranger upper and lower bounds are stored in their own data frame.
filters_df <- data.frame(lower = c(0, 10, 20),
upper = c(2, 12, 22),
filter_name = paste('filter',c('A','B','C'), sep='_'))
df <- data.frame(x = 1:30)
named_range <- function( lower, upper, name, data) {
data > lower & data < upper
}
all_ranges <- function( x, ranges_df){
mapply(FUN=named_range, ranges_df$lower, ranges_df$upper, ranges_df$filter_name, MoreArgs=list(data=x))
}
lapply(df, FUN=all_ranges, filters_df)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment