13

有没有一个函数给定一个数字向量,返回另一个向量,每个值对应的标准单位?

其中标准单位:一个值是多少个 SD 是平均值的 + 或 -

例子:

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

这个虚构的“foo”函数是否已经包含在一个包中?

4

3 回答 3

21

是的,scale()

x <- c(1,3,4,5,7)
scale(x)
于 2011-04-29T18:00:38.560 回答
12

您正在寻找的功能是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
于 2011-04-29T18:00:57.080 回答
5

简单的怎么样(x-mean(x))/sd(x),或者我在这里错过了一些微妙之处?

于 2011-04-29T17:57:37.543 回答