Используя 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 и мутировать
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
Спасибо.
mutate(stat14=mean(finmei14, na.rm = T))
. Имейте в виду, чтоna.rm = TRUE
должен быть установлен внутри функцииmean()
. - person Roman   schedule 26.04.2018na.rm = T
дляmean
, а не дляmutate
- person divibisan   schedule 26.04.2018