将数字向量转换为标准单位向量的函数

发布于 2024-11-04 07:18:22 字数 237 浏览 7 评论 0原文

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

其中标准单位:一个值与平均值相差多少个 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”函数是否已包含在包中?

Is there a function that given a vector of numbers, returns another vector with the standard units corresponding to each value?

where standard unit: how many SDs a value is + or - from the mean

Example:

 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

Is this fictitious "foo" function already included in a package?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

美人如玉 2024-11-11 07:18:22

是的,scale()

x <- c(1,3,4,5,7)
scale(x)

yes, scale():

x <- c(1,3,4,5,7)
scale(x)
半寸时光 2024-11-11 07:18:22

您正在寻找的函数是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

The function you are looking for is 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

Note that the answers are not identical to what you posted in your question. The reason is that the standard deviation in your x is actually 2.23, not 2.

sd(x)
[1] 2.236068
反差帅 2024-11-11 07:18:22

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

How about simply (x-mean(x))/sd(x), or am I missing some subtlety here?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文