这似乎不应该太难,但我很难做到这一点。例如,我有以下数据框:
set.seed(99)
data <- data.frame(Names=rep(c('A','B'),5),
First = rnorm(10),
Second = rnorm(10),
Third = rnorm(10))
我想要的是将整个数据框除以 A 的平均值。我可以通过以下方式计算:
a.mean <- sapply(data[data$Names == 'A', 2:4], mean)
但是当我尝试将整个数据框除以这样的向量时,我没有得到正确的值:
normalized.data <- data[2:4]/a.mean
normalized.data$Names <- data$Names
sapply(data[normalized.data$Names == 'A', 2:4], mean)
First Second Third
0.2578018 -0.5864073 0.1156760
我想要的是 A 的标准化平均值现在等于 1。有没有办法做到这一点?