У меня есть файл данных, состоящий из 57 переменных. Я хочу преобразовать около 12 из них в z-баллы из-за их неравномерного уровня измерения. Я искал интернет-ресурсы и файлы справки. Один интернет-ресурс сообщил, что мне нужен пакет Rbasic (не существует). Я использовал scale(), который, по-видимому, центрировал переменные. Я попробовал V5-mean/st.dev. который принес мне очень странные оценки. Может кто-нибудь, пожалуйста, приложите мне практическое удовольствие?
Создание z-баллов
Ответ 1
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
Ответ 2
mu <- mean(myRow)
sigma <- sqrt ( var(myRow) )
myRow <- (myRow - mu )/ sqrt(sigma)
Ответ 3
Просто вы забыли скобки в: x - mean (x)/sd (x)
Правильный код: ( x - средний (x) )/sd (x)