scale()
является правильным выбором здесь:
> x <- 1:10
> scale(x)
[,1]
[1,] -1.4863011
[2,] -1.1560120
[3,] -0.8257228
[4,] -0.4954337
[5,] -0.1651446
[6,] 0.1651446
[7,] 0.4954337
[8,] 0.8257228
[9,] 1.1560120
[10,] 1.4863011
attr(,"scaled:center")
[1] 5.5
attr(,"scaled:scale")
[1] 3.02765
> (x - mean(x)) / sd(x)
[1] -1.4863011 -1.1560120 -0.8257228 -0.4954337 -0.1651446
[6] 0.1651446 0.4954337 0.8257228 1.1560120 1.4863011
> mean(x)
[1] 5.5
> sd(x)
[1] 3.02765
Обратите внимание, что атрибуты в объекте, возвращаемые из scale()
, являются средним значением и SD входных данных.
Теперьвы не предоставляете реальный код, чтобы показать, как вы вычислили «V5-mean / st.dev», но если вы сделали это именно так, приоритет оператора мог бы вас поймать.Это, например, не возвращает правильные z-оценки:
> x - mean(x) / sd(x)
[1] -0.8165902 0.1834098 1.1834098 2.1834098 3.1834098
[6] 4.1834098 5.1834098 6.1834098 7.1834098 8.1834098