【发布时间】:2020-03-17 20:07:33
【问题描述】:
我编写了一个快速函数来绘制一些人口统计数据,但它无法识别我选择的变量。我知道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")
预计到达时间:感谢您提供的所有建议和资源。我发现以下内容对我的功能进行了最小的修改:
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来提供您的功能? -
您应该提供reproducible example
-
@dc37 我试过“poverty_rate”,但它说的是
argument is not numeric or logical: returning NA。