【发布时间】:2013-02-14 18:00:11
【问题描述】:
这似乎不应该太难,但我很难做到这一点。例如,我有以下数据框:
set.seed(99)
data <- data.frame(Names=rep(c('A','B'),5),
First = rnorm(10),
Second = rnorm(10),
Third = rnorm(10))
我想要的是将整个数据框除以 A 的平均值。我可以通过以下方式计算:
a.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。有没有办法做到这一点?
【问题讨论】:
-
既然你从来没有使用过
B数据,那么让我们摆脱它 -
注意最后一行的错字。您正在计算原始数据的 colmeans,而不是标准化数据。
标签: r scale normalization division