使用R 3.5,R studio 1.1.419。
我有一个包含地理数据和基于城市的度量的数据集。
zip state city statefips finmei14 finmei15
1 501 NY Holtsville 36 NA NA
2 544 NY Holtsville 36 NA NA
3 1001 MA Agawam 25 NA NA
4 1002 MA Amherst 25 69 64
5 1003 MA Amherst 25 69 64
6 1004 MA Amherst 25 69 64
7 1005 MA Barre 25 NA NA
8 1007 MA Belchertown 25 NA NA
9 1008 MA Blandford 25 NA NA
10 1009 MA Bondsville 25 NA NA
finmei14和finmei15是基于城市的度量,我希望按州聚合,因此会有一个新变量将城市度量的平均值转换为新的状态度量(stat14和stat15)。我尝试使用group_by和mutate
testdat %>%
group_by(state) %>%
mutate (stat14=mean(finmei14))
我的结果是stat14只剩下NA了。
zip state city statefips finmei14 finmei15 stat14
1 501 NY Holtsville 36 NA NA NA
2 544 NY Holtsville 36 NA NA NA
3 1001 MA Agawam 25 NA NA NA
4 1002 MA Amherst 25 69 64 NA
5 1003 MA Amherst 25 69 64 NA
6 1004 MA Amherst 25 69 64 NA
7 1005 MA Barre 25 NA NA NA
8 1007 MA Belchertown 25 NA NA NA
9 1008 MA Blandford 25 NA NA NA
10 1009 MA Bondsville 25 NA NA NA
我还试图添加na.rm = TRUE,但它返回了此结果
testdat %>%
group_by(state) %>%
mutate (stat14=mean(finmei14), na.rm=TRUE)
zip state city statefips finmei14 finmei15 stat14 na.rm
1 501. NY Holtsville 36. NA NA NA TRUE
2 544. NY Holtsville 36. NA NA NA TRUE
3 1001. MA Agawam 25. NA NA NA TRUE
4 1002. MA Amherst 25. 69. 64. NA TRUE
5 1003. MA Amherst 25. 69. 64. NA TRUE
6 1004. MA Amherst 25. 69. 64. NA TRUE
7 1005. MA Barre 25. NA NA NA TRUE
8 1007. MA Belchertown 25. NA NA NA TRUE
9 1008. MA Blandford 25. NA NA NA TRUE
10 1009. MA Bondsville 25. NA NA NA TRUE
我想看到的(基于此样本)是
zip state city statefips finmei14 finmei15 stat14
1 501 NY Holtsville 36 NA NA NA
2 544 NY Holtsville 36 NA NA NA
3 1001 MA Agawam 25 NA NA 69
4 1002 MA Amherst 25 69 64 69
5 1003 MA Amherst 25 69 64 69
6 1004 MA Amherst 25 69 64 69
7 1005 MA Barre 25 NA NA 69
8 1007 MA Belchertown 25 NA NA 69
9 1008 MA Blandford 25 NA NA 69
10 1009 MA Bondsville 25 NA NA 69
谢谢。