【发布时间】:2021-12-30 22:52:25
【问题描述】:
我想创建一个地图,显示给定状态的变量值。该数据集包含大约一千个变量,并且处于州级,大约存在 100 年。
我拥有和工作的代码是:
plot_usmap(data = database, values = "var1") + scale_fill_continuous(
low = "white", high = "blue", na.value="light gray", name = "Title of graph", label = scales::comma
) + theme(legend.position = "right")
现在我想做的是为大约 15 个变量和 10 年的列表创建这张地图。 我通常是 STATA 用户,在那里我可以定义一个变量列表,然后循环遍历变量列表。在本文档“A Quick Introduction to R (for Stata Users)”的第 7 页上,我尝试应用以下解决方案:
vars <- c("database$var1", "database$var2", "database$var3","database$var4", "database$var5", "database$var6", "database$var7", "database$var8", "database$var9", "database$var10", "database$var11", "database$var12")
for(var in vars) {
v <- get(var)
plot_usmap(data = darabase, values = "v") +
scale_fill_continuous(low = "white", high = "blue", na.value="light gray", name = "v", label = scales::comma) + theme(legend.position = "right")}
使用此代码,我收到错误“get(var) 中的错误:找不到对象 'database$var1'。当我尝试查看 (database$var1) 时,它会出现。下一个问题是我想要名称将图表的标签作为变量而不是变量的标签。在上面的示例中,我将整个数据限制为仅包括 1 年,因此如果有解决方案来设置代码,我可以使用整个数据库但地图只能选择年份,那太好了。
任何见解将不胜感激!我在 R 中读到过,“for”的使用不多,所以如果有更好的方法,请告诉我。
【问题讨论】: