我希望在许多值的数据范围内计算z评分年收入。随着州平均收入的平均收入,我希望使用标准偏差和平均国家找到z得分,然后适用于单个行。
data $ yarny_inc是整数,并且数据$状态为50级因子
非常感谢!
假设您的数据是以下形式:
annual_inc state
(numeric) (character)
x1 S1
x2 S2
etc.
然后您可以使用dplyr
如下:
library(dplyr)
z.score <- data %>%
group_by(state) %>%
mutate(annual_z = (annual_inc - mean(annual_inc))/sd(annual_inc))
您还可以相对轻松地找到每个状态的平均值和SD,使用:
data %>%
group_by(state) %>%
summarize(sd = sd(annual_inc),
mean = mean(anuual_inc))
如果您缺少值,只需将na.rm = T
添加到mean
和sd
命令或首先将它们从数据中滤出。
P.S。您也可以在基本r中执行此操作,但是dplyr
还有很多我不介入的其他好处。