Using dplyr::count() with variable column names
Based on this StackOverflow thread and this R-bloggers post
If calling the count() function inside a custom function for example, using a variable name as input to match the column to count, the variable name will be a string. And because dplyr quotes the arguments, we need to unquote the argument.
One option is to use across():
df %>% count(across(colname))
Another is to use !!as.name().
My concrete use:
count_drug <- function(drug) {
colname <- (paste0("rut_", drug))
df %>%
count(Major_geno, !!as.name(colname)) %>%
add_column("drug" = drug) %>%
rename(category = !!as.name(colname))
}
Leave a Comment