У меня есть набор данных, который выглядит следующим образом
df1 <- 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_1 = c(rep("M",4),rep("NM",7),rep("P", 3), rep("A", 6)),
ethnic_2 = c(rep("M",8),rep("NM",6),rep("P",2),rep("A", 4)),
gender = c(rep("M",10), rep("F",10))
)
Что я хочу сделать, так это получить сравнение двух этнических классификаций в этих информационных фреймах, создав и выполнив следующую функцию
Comp_fun <- function(data, var1, ...) {
group_var <- quos(...)
var_quo <- enquo(var1)
df <- data %>%
group_by(!!! group_var) %>%
summarise (n = n()) %>%
spread(key = !!! var_quo, value = count)
return(df)
}
eth_comp <- Comp_fun(df1, ethnic_1, ethnic_1, ethnic_2)
Когда я запускаю этот код, я получаю следующее сообщение об ошибке Error: Invalid column specification
В качестве вывода из этого я хочу получить таблицу 4 x 4, показывающую количество этнических 1 по горизонтали и число этнических 2 по вертикали, а также числа, где они совпадают, а где нет. т.
Мне кажется, я неправильно использую quo
enquo
. Может кто-нибудь сказать мне, где я иду не так?