В кадре данных я хочу вычесть среднее значение для каждого столбца из каждого элемента этого столбца.R Применить расчет по каждой строке и столбцу кадра данных
Пример кадра данных:
x <- c(1,2,3,4,5,6,7,8,9,10)
y <- c(2,3,2,3,2,3,2,3,2,3)
z <- c(100,200,300,400,500,600,700,800,900,1000)
df <- data.frame(x, y, z)
# get the mean of each column
mu <- colMeans(df)
Я думаю, что нужно использовать sapply
, похожие на:
df_norm <- df
df_norm[,1] <- sapply(df[,1], function(x) (x-mu[1]))
df_norm[,2] <- sapply(df[,2], function(x) (x-mu[2]))
df_norm[,3] <- sapply(df[,3], function(x) (x-mu[3]))
, но я не могу понять, как писать FUN
аргумент, чтобы сделать это в одной строке кода.
Теперь почему я не подумал об этом ..! – tospig