好的,适用于我的克星,但我很肯定它与这里的答案有关。R数据帧的聚合列
我有贫困数据,有三个级别,州(name_1),县(name_2)和乡镇(name_3)。我需要做一个天真的降尺度,我假设平均状态收入(收入= e2004MeanY)等于1)每个县的收入和2)每个乡镇的收入。
> head(da)
name_1 name_2 name_3 e2004MeanY acc_500k
0 Vung Dong Bac Lao Cai Xi Mai Ca 637 539.67810
1 Vung Dong Bac Bac Kan Bac Kan Township 2199 378.90057
2 Vung Dong Bac Bac Kan Ba Be 1075 549.34222
3 Vung Dong Bang Song Cuu Long Long An Can Duoc 2284 74.61940
4 Vung Dong Bang Song Cuu Long Long An Can Giuoc 2256 96.18077
5 Vung Dong Bang Song Cuu Long Can Tho Vi Thanh Township 2136 262.74435
我已经聚集的数据,所以我有每个状态的装置:
> vnm1 <- aggregate(da[,-c(1:3)], da[,1, drop=F], mean, na.rm=TRUE)
> head(vnm1)
name_1 e2004MeanY acc_500k alt cost cropland
1 Vung Bac trung Bo 1680.296 497.8453 162.023675 375.4979 98.78586
2 Vung Dong Bac 1574.306 355.9818 327.662351 423.0005 98.66135
3 Vung Dong Bang Song Cuu Long 2031.346 269.4059 4.733111 186.6358 98.41601
4 Vung Dong bang song Hong 2416.989 118.4019 11.128992 150.1016 98.40423
5 Vung Dong Nam Bo 3350.440 205.7134 171.782189 233.0148 99.15330
6 Vung Duyen Hai Nam Trung Bo 1855.655 793.1942 235.375168 427.0307 97.12402
我有dataframes,VNM2和vnm3,其中被聚合的方式vnm1相同的,除了通过NAME_2和NAME_3,分别为:
vnm2 <- aggregate(da[,-c(1:3)], da[,2, drop=F], mean, na.rm=TRUE)
vnm3 <- na.omit(da[,-c(1:2)])
我如何获得vnm1 $ e2004MeanY值到VNM2和vnm3?
你可以输入它应该看起来的例子吗?你正在寻找的东西可能在'rbind','cbind'或'merge'中找到。另外,'plyr'包非常适合聚合数据帧。 (请参阅'plyr'中的'ddply') – 2012-07-13 00:12:25
我的赌注在'merge'。 – 2012-07-13 10:20:12