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]
從那裏,我不知道該去哪裏。我認爲循環會起作用,但是做一些搜索,我看到它不被建議。因此,我想要爲每個樣品工廠提供標準化數據。有什麼建議嗎?