sourcedf <- data.frame(stringsAsFactors=FALSE,
þÿ.URN. = c("aaa", "bbb", "ccc", "ddd","eee","fff"),
Rec_2_43 = c(1, NA, 3, NA,NA,0),
Staff_43 = c(NA, 1, NA, 1,NA,0),
Rec_1_35 = c(2, NA, 1, NA,1,0),
Timeliness_2 = c(NA, 1, NA, 1,1,0),
Staff_2 = c(1, NA, 2, NA,1,0)
)
library(tidyverse)
# edited so that ungroup is inside and not outside the function
process_suffix <- function(df,suffix)
{
vars_to_include <- tidyselect::vars_select(names(df),ends_with(suffix))
#edited to wrap vars to include in backticks for irregular var names
quotedform <- paste0(" if_else(any(c(",
paste0("`",vars_to_include,"`",">=1",collapse = ","),
"),na.rm = TRUE),1,0)")
mutator <- rlang::parse_expr(quotedform)
result <- df %>% rowwise() %>%
mutate(!!suffix := !!mutator) %>% ungroup()
}
# get all suffixes after skipping first column
ndf <- names(sourcedf[,-1])
suffix_list <- stringr::str_split(ndf,
"_") %>%
map(~tail(.,1)) %>% unique %>% unlist
output_df <- sourcedf
for( i in suffix_list) { output_df <- process_suffix(output_df,paste0("_",i))}
result will be in output_df