library(rlang) library(dplyr) new_median_rows <- function(df,groupvar = NULL, x = NULL, nrows = 5, ...) { sortvars <- quos(...) x_quo <- enquo(x) groupvar_quo <- enquo(groupvar) df %>% arrange(!!!sortvars) %>% group_by(!!groupvar_quo) %>% filter(row_number(!!x_quo) %in% 1:nrows) %>% mutate(Baseline = median(!!x_quo)) } #1 test <- new_median_rows(df = mtcars, groupvar = cyl, x = mpg, nrows = 5, gear, carb) #2 new_median_rows2 <- function(df,groupvar = NULL, x = NULL, nrows = 5, ...) { sortvars <- quos(...) x_quo <- enquo(x) groupvar_quo <- enquo(groupvar) df %>% arrange(!!!sortvars) %>% group_by(!!groupvar_quo) %>% filter(row_number(!!x_quo) %in% 1:nrows) %>% mutate(Baseline = median(!!x_quo)) %>% arrange(!!groupvar_quo) } test_medianrows2 <- new_median_rows2(df = mtcars, groupvar = cyl, x = mpg, nrows = 7, gear, carb) test2 <- new_median_rows(df = mtcars, groupvar = cyl, x = mpg, nrows = 9, gear, carb) testdf <- mtcars %>% arrange(cyl,mpg) %>% group_by(cyl) %>% arrange(cyl,carb) %>% filter(row_number(mpg) %in% 1:5) %>% mutate(baseline = median(mpg)) testdf2 <- new_median_rows(mtcars,cyl,x = mpg,nrows = 7,cyl,carb) testdf3 <- new_median_rows(mtcars,vs,x = wt,nrows = 3,drat,hp) testdf3 %>% arrange(drat) library(nycflights13) data(flights) flight_test <- new_median_rows(flights, carrier, dep_delay, 5, origin,day)