在R中找到相对于州平均收入的年收入的z得分

时间:2017-04-26 21:00:52

标签: r statistics normalization

我希望在很多数值的数据框架内计算年收入的z得分。由于平均年收入因州而异,我希望使用标准差和州平均值来找到z得分,然后应用于各行。

data $ annual_inc是整数和 data $ state为50级因子

非常感谢!

1 个答案:

答案 0 :(得分:0)

假设您的数据具有以下形式:

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添加到meansd命令,或先将其过滤掉。

P.S。您也可以在R基础上执行此操作,但dplyr还有很多其他好处,我没有这些好处。