创建面板数据

时间:2019-06-16 17:05:13

标签: r longitudinal

我想创建一个面板数据。我的问题如下。

我想跟踪1800-1921年期间1000多个城市的4个变量。到目前为止,我在R中有一个数据框,其中包含以下列: 城市,身份证,年份,国家,纬度,经度,迫害,驱逐,波哥大,瘟疫。

理想情况下,我想扩展此数据框,以便为每个城市以下内容: 121行(从1800年到1921年)具有相同的城市,身份证,国家,纬度,经度值,但对迫害,驱逐,大屠杀,瘟疫的分配都为0。

有人告诉我reshape 2功能可能会有所帮助,尽管我还没有找到任何可行的解决方案。这是我尝试(无法适应)的代码

g <- with(data, expand.grid(year = seq(1800, 1921), id = unique(id), persecutions = 0, expulsion = 0, pogrom = 0, plague = 0)) #
data <- rbind(data, g) #

wide <- dcast(data, year ~ id, fill = 0, fun = sum, value.var = c("persecutions", "expulsion", "pogrom", "plague))
long <- melt(wide, id = "year", variable.name = "id", value.name = c("persecutions", "expulsion", "pogrom", "plague))

long <- long[order(long$id, long$year), c("id", "year", c("persecutions", "expulsion", "pogrom", "plague))]

所有想法都会很有帮助。 enter image description here

0 个答案:

没有答案
相关问题