2
在尝试按给定行的平均值划分给定行中的每个元素后,我遇到了一些困难。一套假数据:使用其中的行平均值对数据进行规范化处理
set.seed(1)
x <- cbind(Plant = letters[1:5],
as.data.frame(matrix(rnorm(60), ncol = 12)))
x
因此,对于Plant a,我想用V1,V2 ... V12除以该行的平均值。
我认为它可以用做:
x/rowMeans(x)
但我得到的错误:
Error in rowMeans(x) : 'x' must be numeric
我认为这个错误是由于数据的格式,因为它是一个数据.frame而不是矢量。然而,我设法通过改变数据的格式来计算每行的平均值:
library(data.table)
x.T <- as.data.table(x)
x.T[,list(Mean=rowMeans(.SD)), by=Plant]
从那里,我不知道该去哪里。我认为循环会起作用,但是做一些搜索,我看到它不被建议。因此,我想要为每个样品工厂提供标准化数据。有什么建议吗?