小编Wor*_*e11的帖子

如何使用dplyr计算R中的分组z得分?

使用iris数据集,我试图为每个变量计算z得分。通过执行以下操作,我得到的数据格式整齐:

library(reshape2)
library(dplyr)
test <- iris
test <- melt(iris,id.vars = 'Species')
Run Code Online (Sandbox Code Playgroud)

这给了我以下内容:

  Species     variable value
1  setosa Sepal.Length   5.1
2  setosa Sepal.Length   4.9
3  setosa Sepal.Length   4.7
4  setosa Sepal.Length   4.6
5  setosa Sepal.Length   5.0
6  setosa Sepal.Length   5.4
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试为每个组创建一个z分数列(例如Sepal.Length的z分数与Sepal。Width的z分数不兼容)时,请使用以下命令:

test <- test %>% 
  group_by(Species, variable) %>% 
  mutate(z_score = (value - mean(value)) / sd(value))
Run Code Online (Sandbox Code Playgroud)

所得的z得分尚未分组,并且基于所有数据。

使用dpylr按组返回z分数的最佳方法是什么?

非常感谢!

r dplyr data-science

5
推荐指数
2
解决办法
4578
查看次数

标签 统计

data-science ×1

dplyr ×1

r ×1