我希望在很多数值的数据框架内计算年收入的z得分。由于平均年收入因州而异,我希望使用标准差和州平均值来找到z得分,然后应用于各行。
data $ annual_inc是整数和 data $ state为50级因子
非常感谢!
答案 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
添加到mean
和sd
命令,或先将其过滤掉。
P.S。您也可以在R基础上执行此操作,但dplyr
还有很多其他好处,我没有这些好处。