R, корреляция: есть ли функция, которая преобразует вектор чисел в вектор стандартных единиц - PullRequest
9 голосов
/ 29 апреля 2011

Есть ли в R функция, которая, учитывая вектор чисел, возвращает другой вектор со стандартными единицами, соответствующими каждому значению?

, где ... стандартная единица измерения: сколько SD равно значению + или - от среднего значения

Пример:

 x <- c(1,3,4,5,7)    # note: mean=4, sd=2
 su(x) 
 [1]  -1.5  -0.5  0.0  0.5  1.5

Эта (вымышленная) функция "su" уже включена в пакет?

Спасибо.

Ответы [ 3 ]

18 голосов
/ 29 апреля 2011

да, scale():

x <- c(1,3,4,5,7)
scale(x)
11 голосов
/ 29 апреля 2011

Функция, которую вы ищете: scale.

scale(x)


           [,1]
[1,] -1.3416408
[2,] -0.4472136
[3,]  0.0000000
[4,]  0.4472136
[5,]  1.3416408
attr(,"scaled:center")
[1] 4
attr(,"scaled:scale")
[1] 2.236068

Обратите внимание, что ответы не совпадают с тем, что вы отправили в своем вопросе.Причина в том, что стандартное отклонение в вашем x на самом деле составляет 2.23, а не 2.

sd(x)
[1] 2.236068
5 голосов
/ 29 апреля 2011

Как насчет просто (x-mean(x))/sd(x), или мне здесь не хватает какой-то тонкости?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...