有没有一个函数给定一个数字向量,返回另一个向量,每个值对应的标准单位?
其中标准单位:一个值是多少个 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”函数是否已经包含在一个包中?
有没有一个函数给定一个数字向量,返回另一个向量,每个值对应的标准单位?
其中标准单位:一个值是多少个 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”函数是否已经包含在一个包中?
是的,scale()
:
x <- c(1,3,4,5,7)
scale(x)
您正在寻找的功能是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
简单的怎么样(x-mean(x))/sd(x)
,或者我在这里错过了一些微妙之处?