У меня есть фрейм данных, который выглядит следующим образом
df <- data.frame (
age = rep(c("40-44", "45-49", "50-54", "55-59", "60-64"),4),
dep = rep(c("Dep1", "Dep2", "Dep3", "Dep4", "Dep5"),4),
ethnic = rep(c(rep("M",5),rep("NM",5)),2),
gender = c(rep("M",10), rep("F",10))
)
Я пытаюсь сгенерировать описательную статистику для ряда схожих фреймов данных, все из которых получены из разных источников, поэтому я могу сравнить.
Я использую следующий код, чтобы получить счетчик и пропорцию для пола, пола, этнической принадлежности, возраста и пола + этнической принадлежности в качестве функции, которую я могу применить к нескольким наборам данных
Dems_fun <- function(data, sex, eth, dep, age) {
Fun <- function(data, ...) {
group_var <- quos(...)
data %>%
group_by(!!! group_var) %>%
summarise (n = n()) %>%
mutate(freq = n / sum(n)) %>%
unite(dem, !!! group_var, sep = "_", remove = T)
}
Sex <- Fun(data, sex)
Sex_eth <- Fun(data, sex, eth)
Eth <- Fun(data, eth)
Dep <- Fun(data, dep)
Age <- Fun(data, age)
Dems <- rbind(Sex, Sex_eth, Eth, Dep, Age)
colnames(Dems) <- c("Category", "count", "percentage")
return(Dems)
}
Когда язапустить эту функцию
test <- Dems_fun(df, gender, ethnic, dep, age)
Я получаю следующее сообщение об ошибке:
Ошибка в grouped_df_impl (данные, unname (переменные), отбрасывание): столбец sex
неизвестен
Может кто-нибудь сказать мне, где я иду не так?
Я видел этот похожий вопрос Ошибка при использовании enquo для создания функции с ddplyr , но я не могу 'не могу сказать, относятся ли те же ошибки к моему примеру.