【问题标题】:code issue: Error in `[.data.frame`(result, , c(setdiff(names(result), names(data)), : undefined columns selected代码问题:`[.data.frame`(result, , c(setdiff(names(result), names(data))) 中的错误,: 选择了未定义的列
【发布时间】:2020-04-24 14:03:13
【问题描述】:

您好,我创建了一个 usmap 使用

plot_usmap(regions="counties",data=big.covid,values = "density")+
  labs(title="Unweighted Density by County")+
  theme(panel.background = element_rect(color="black"))+
  scale_fill_continuous(low="white",high="darkblue", name="Density")

而不是编织,我得到这个错误: [.data.frame(result, , c(setdiff(names(result), names(data))) 中的错误:选择了未定义的列

知道如何识别错误并修复它吗?有 59 个变量,问题出在上面地图中未使用的列名中吗?使用 plot_usmap 调用中内置的 x=x,y=y,id=fips

【问题讨论】:

  • 消息错误不言自明:确保变量名称 countiesdensity 在您的数据中确实作为列存在(区分大小写)。
  • 检查documentation。这个问题肯定与values="density" 有关,我建议确保bid.covid$density 存在并且是数字。 regions="counties" 应该不是问题。请注意,如果您想获取地图中使用的县的列表,应该可以通过以下方式访问:usmap::us_map(regions='counties')$county 根据提供的文档。
  • 奇怪的是,它被隐藏在文档中,显然,当我使用 plot_usmaps 时,我一次只能管道输入两列数据,所以一旦我通过管道仅输入 FIPS 和密度来减少数据更大的数据文件运行良好,错误消失了。错误消息令人困惑。

标签: r ggplot2 usmap


【解决方案1】:

我找到了这个问题的答案。文档提到,如果您在地图中使用数据,则只能使用两列,其中一列必须是 FIPS 或状态。最初,我认为这意味着我只能使用一个变量,但它是字面的,所以我从较大的数据文件中输入了两列:

`big.covid %>%
   select(fips, density)%>% 
 plot_usmap(regions="counties",data=big.covid,values = "density")+
   labs(title="Unweighted Density by County")+
   theme(panel.background = element_rect(color="black"))+
   scale_fill_continuous(low="white",high="darkblue", name="Density")`

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多