在尝试将给定行中的每个元素除以该行的平均值后,我遇到了一些困难。一组虚拟数据:
set.seed(1)
x <- cbind(Plant = letters[1:5],
as.data.frame(matrix(rnorm(60), ncol = 12)))
x
因此,对于植物 a,我希望 V1、V2...V12 除以该行的平均值。
我认为可以使用以下方法完成:
x/rowMeans(x)
但我得到了错误:
Error in rowMeans(x) : 'x' must be numeric
我认为这个错误是由于数据的格式造成的,因为它是一个 data.frame 而不是一个向量。然而,我设法通过更改数据格式来计算每行的平均值:
library(data.table)
x.T <- as.data.table(x)
x.T[,list(Mean=rowMeans(.SD)), by=Plant]
从那里,我不知道该去哪里。我认为循环会起作用,但是做一些搜索,我看到不建议这样做的地方。因此,我希望获得每个样本植物的标准化数据。请问有什么建议吗?