Я написал быструю функцию для построения демографических данных, но она не распознает выбранную мной переменную. Я знаю, что poverty_rate
- это столбец в моем фрейме данных, он появляется, когда я делаю names(df)
, и я использовал его в предыдущих порциях. Да, когда я запускаю функцию ниже, я получаю Error in mean(demog, na.rm = TRUE) : object 'poverty_rate' not found
. Что я делаю неправильно?
dense_plot_demos <- function(df, id_list, demog, color_id, demo_name, qual) {
df %>%
filter(GEOID %in% id_list) %>%
group_by(GEOID) %>%
mutate(avg_var = mean(demog, na.rm=TRUE)) %>%
ggplot(aes(x=avg_var)) +
geom_histogram(aes(y=..density..), color="black", fill="white", bins=20) +
geom_density(alpha=.5, fill=color_id) +
theme_bw() +
xlab(demo_name) +
ylab("Density") +
theme(plot.title = element_text(hjust = 0.5)) +
labs(title = paste(demo_name, "in", qual, "Filing Counties"))
}
top_pov <- dense_plot_demos(df, top_ids, poverty_rate, color_pal[1], "Poverty Rate", "Highest")
ETA: Спасибо за все ваши предложения и ресурсы. Я обнаружил, что с минимальной модификацией моей функции работало следующее:
dense_plot_demos <- function(df, id_list, demog, color_id, demo_name, qual) {
demog <- sym(demog)
df %>%
filter(GEOID %in% id_list) %>%
group_by(GEOID) %>%
mutate(avg = (mean(!! demog, na.rm=TRUE))) %>%
ggplot(aes(x=avg)) +
geom_histogram(aes(y=..density..), color="black", fill="white", bins=20) +
geom_density(alpha=.5, fill=color_id) +
theme_bw() +
xlab(demo_name) +
ylab("Density") +
theme(plot.title = element_text(hjust = 0.5)) +
labs(title = paste(demo_name, "in", qual, "Filing Counties"))
}
top_pov <- dense_plot_demos(ecplot, top_lists, "poverty_rate", color_pal[1], "Poverty Rate", "Highest")
"poverty_rate"
вместоpoverty_rate
? - person dc37   schedule 21.11.2019argument is not numeric or logical: returning NA
. - person carousallie   schedule 21.11.2019