R中的分组以表示地图上每个县的计数?

Posted

技术标签:

【中文标题】R中的分组以表示地图上每个县的计数?【英文标题】:Group by in R to represent counts per county on a map? 【发布时间】:2020-09-04 06:45:40 【问题描述】:

picture of data

我有上面的数据,我需要在其中代表地图上每个美国县的最后一列中的公司。 dea 是能够将鼠标悬停在一个县上并让它说出公司名称。它来自我折叠成 csv 的 Excel 数据透视表。我的策略是添加一个列来汇总每个县的公司数量,以便我可以映射该变量。我不确定最好的方法,我假设列值显示为“Alabama Power Company (4) Wetterhorn Wireless L.L.C. (3)”或“Alabama Power Company Alabama Power Company Alabama Power Company Alabama Power Company Wetterhorn Wireless L.L.C. Wetterhorn Wireless L.L.C. Wetterhorn Wireless L.L.C."或类似的东西。我会使用 group by 来做到这一点吗?在地图上总结此数据透视表的最佳方式是什么?

【问题讨论】:

我现在看到我可能需要将数据从长数据更改为宽数据,并研究如何做到这一点 请使用dput添加数据,而不是图像。还显示相同的预期输出。请阅读有关how to ask a good question 的信息以及如何提供reproducible example。 group_by() 如果你将它与summarise() & n() 结合使用应该可以工作,你也可以尝试看看add_counts() 函数 【参考方案1】:

如果数据加载为data.table,您可以非常轻松地获得计数。只需使用 .N 和 'by' 按国家和公司分组

library(data.table)
dt=data.table(data)

dt[,count:=.N,by=.(country,company)]

注意:

data 应该是您从 csv 加载的数据框 将 countrycompany 替换为 data.table 中国家和公司列的名称

【讨论】:

现在我有一个计数列:i.stack.imgur.com/vM5Gp.png 如何添加一个包含该县其他公司的新列?类似于“阿拉巴马州电力公司 (4) Wetterhorn Wireless L.L.C. (3)” 您只需要每个县的所有公司的数量吗? dt[,count:=.N,by=.(county)] 应该可以工作 不,这只是返回总数 (7) 而不是每个(4 Alabama 和 3 Wetterhorn)有多少 对不起,你的问题不是很清楚。请发布示例输出。【参考方案2】:

我终于想出了如何使用聚合来表示它:

summary = aggregate(dt$company, list(dt$county), paste, collapse="")

这会产生所有获胜者的姓名

【讨论】:

以上是关于R中的分组以表示地图上每个县的计数?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中使用 aggregate/group_by 对数据进行分组并对每个因子变量进行计数?

使用正方形表示地图中的计数

r 按R计数分组

每个时间间隔的事件分组和计数,加上运行总数

获取分组列的计数

按日期分组和计数 (R)