R 如何按组计算Z分数
我想使用每组产生的平均值和标准差来计算Z分数。例如,我有下表。它有3组数据,我可以为每组生成平均值和标准差。然后,我使用组1平均值和SD来计算组1数据点的Z核,等等 > dat group level y 1 1 A 10.8 2 1 B 12.0 3 1 C 9.6 4 1 A 12.0 5 1 B 7.8 6 1 C 10.8 7 2 A 8.7 8 2 B 9.2 9 2 C 8.2 10 2 A 10.0 11 2 B 12.2 12 2 C 8.2 13 3 A 10.9 14 3 B 8.3 15 3 C 10.1 16 3 A 9.9 17 3 B 10.9 18 3 C 10.3 >dat 组水平y 1 A 10.8 21B12.0 3 1 C 9.6 41A12.0 51B7.8 6 1 C 10.8 7.2 A 8.7 8.2 B 9.2 9 2 C 8.2 10.2 A 10.0 11 2 B 12.2 12 2 C 8.2 13 3 A 10.9 14 3 B 8.3 15 3 C 10.1 16 3 A 9.9 17 3 B 10.9 18 3 C 10.3 我从这个博客学到了如何按组获取摘要数据,但不知道如何从那里开始 谢谢。我想看看这个 比如:R 如何按组计算Z分数,r,R,我想使用每组产生的平均值和标准差来计算Z分数。例如,我有下表。它有3组数据,我可以为每组生成平均值和标准差。然后,我使用组1平均值和SD来计算组1数据点的Z核,等等 > dat group level y 1 1 A 10.8 2 1 B 12.0 3 1 C 9.6 4 1 A 12.0 5 1 B 7.8 6 1 C 10.8 7 2 A 8.7 8
require(data.table)
datDT <- data.table(dat)
datDT[, yScaled := scale(y), by = group]
require(data.table)
datDT基本R(即不需要依赖项)包括函数ave()
(用于分组应用)和scale()
(用于计算z分数):
dat$z您可以使用plyr的ddply函数来计算z分数
library(plyr)
dat <- ddply(dat, .(group), summarize, z_score=scale(y))
库(plyr)
datIndplyr
library(dplyr)
dat_z = dat %>%
group_by(group) %>%
mutate(z_score = scale(y))
@Jeromy Anglim,如果我有两个分类组,我如何定制语法来获得z分数?比如,我有绘图、种类和数值变量的列表,我想根据绘图和种类对数值变量进行具体的规范化,因为在许多绘图中可以找到许多种类?@Stackuser我放置dat$group
的位置代替了…
参数,该参数接受任意数量的分组变量。只需添加更多变量<代码>dat$z谢谢,如果您再次帮助我,我如何使用R将图形放大或部分放大并放置在另一个位置,以便观众能更清楚地看到它?谢谢!如果你再帮我一次,我如何用R把最低点的坐标放在图中,例如,如果最低点的坐标是(17,17.1),我想在图上把这个点定位为(17,17.1),你怎么做?@stackuser你的问题不在这个答案的范围内,它解决了一个与策划无关的非常具体的问题。我认为你应该问一个全新的问题来帮助你解决这个问题。
dat <- ddply(dat, .(group), summarize, z_score=(y-mean(y))/sd(y)))
library(dplyr)
dat_z = dat %>%
group_by(group) %>%
mutate(z_score = scale(y))