У меня есть фрейм данных, в котором хранятся среднее и стандартное отклонение для 4 (или любого числа N) переменных
mean_sd_df <- data.frame(variable = c('x1', 'x2', 'x3', 'x4'),
mean_var = c(2, 3, 4, 8),
sd_var = c(0.2, 0.3, 0.4, 0.6))
У меня есть другой фрейм данных, в котором есть значения четырех вышеуказанных переменных, которые должны быть стандартизировано с использованием среднего значения и SD из приведенного выше фрейма данных
set.seed(123)
dat.mat <- data.frame(x1 = sample(1:10, 4),
x2 = sample(1:10, 4),
x3 = sample(1:10, 4),
x4 = sample(1:10, 4))
Вот как я делаю стандартизацию.
dat.mat[ , 1] <- (dat.mat[ , 1] - mean_sd_df[1, 'mean_var'])/mean_sd_df[1, 'sd_var']
dat.mat[ , 2] <- (dat.mat[ , 2] - mean_sd_df[2, 'mean_var'])/mean_sd_df[2, 'sd_var']
dat.mat[ , 3] <- (dat.mat[ , 3] - mean_sd_df[3, 'mean_var'])/mean_sd_df[3, 'sd_var']
dat.mat[ , 4] <- (dat.mat[ , 4] - mean_sd_df[4, 'mean_var'])/mean_sd_df[4, 'sd_var']
Если у меня много переменных, это может стать большим, так интересно есть ли более простой способ сделать это?