Skip to content

Instantly share code, notes, and snippets.

@bhive01
Created March 4, 2018 21:38
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 bhive01/b45c265082b43462d15f4247089392b9 to your computer and use it in GitHub Desktop.
Save bhive01/b45c265082b43462d15f4247089392b9 to your computer and use it in GitHub Desktop.
library(tidyverse)
project_two <- readr::read_csv(
'ID, GROUP, value1, value2
1 , 1, 1, 1
1 , 1, 1, 2
2 , 1, 2, 1
2 , 1, 2, 2
1 , 2, 3, 1
1 , 2, 3, 2
')
complex_fn <- function(df, IDvar, colname, fun) {
out_name_sym <- sym(colname)
print(out_name_sym)
cat("processing: ", IDvar , "\n")
df %>%
mutate(!!out_name_sym := fun(.[[1]]))
}
f1 <- function(df, grp_vars, out_name, fun) {
grp_var_sym <- syms(grp_vars)
print(grp_var_sym)
df %>%
nest(.key = data_col, -grp_vars) %>%
mutate(grp_name = paste(!!!grp_var_sym, sep = ", ")) %>%
mutate(data_col = pmap(list(data_col, grp_name) , ~ complex_fn(..1, ..2, out_name, fun))
) %>%
unnest() %>%
select(-grp_name)
}
f1(project_two, c("ID", "GROUP"), "column_name_test", row_number)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment