首页 > 解决方案 > 使用 dplyr 和 table 函数

问题描述

library(raster)
my.shp <- getData('GADM', country='FRA', level=1)

set.seed(123)
df <- data.frame(ID_1 = rep(my.shp$ID_1, each = 100), 
                 category = sample(c("early", "medium", "late"), 22 * 100, replace = T))

我想转换df成一个df1看起来像这样的:

ID_1   length.of.early. length.of.medium length.of.late

即对于每个 ID_1,我想创建早期、中期和晚期的条目数,然后将其添加到my.shp

df %>% group_by(ID_1) %>% table(category) # how do I apply the 'table' function here

然后我将加入df1使用my.shp这个:

dat.shp <- merge(my.shp, df1, by = "ID_1")

然后绘制dat.shp为地图并显示length.of.earlylength.of.mediumlength.of.late为地图上的每个ID_1绘制条形图。我发现这篇文章可以帮助我做到这一点

https://nzprimarysectortrade.wordpress.com/2011/10/02/let-r-fly-visualizing-export-data-using-r/

但为了做到这一点,我必须先创建df1. 请注意,我可以编写一个循环来执行此操作,但我正在寻找针对此的 dplyr 解决方案或任何其他避免循环的解决方案。

标签: rdplyr

解决方案


推荐阅读