如何计算R中的标准差

时间:2014-02-01 08:00:36

标签: r

我想通过R计算40个数据点的标准差。我无法做到这一点......

我试过了:

> sd{1, 2, 3}
Error: unexpected '{' in "sd{"
> sd(1, 2, 3)
Error in sd(1, 2, 3) : unused argument (3)

并尝试过:

> x <- c(1, 2, 3)
> sd(x)
[1] 1

它给出输出'1'但我相信标准差为1,2和3而不是1.

我在这里做错了什么?原谅我,我是初学者

1 个答案:

答案 0 :(得分:12)

您必须在c内使用sd

sd(c(1, 2, 3))
# [1] 1

返回1。这是 示例 标准差,是基于n - 1分母的总体标准差的估算值。这是Rs sd函数的默认行为。

如果您想计算 人口 (分母n)的标准偏差,您可以使用:

x <- c(1, 2, 3)

sqrt(mean(x ^ 2) - mean(x)^2)
# [1] 0.8164966

如果您知道样本标准差和向量长度(即元素数量),您可以使用此方法计算总体标准差:

n <- length(x)  # number of values
std <- sd(x)    # sample standard deviation

sqrt((std ^ 2) * ((n - 1) / n))
# [1] 0.8164966