我想通过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。
我在这里做错了什么?请原谅,我是个初学者
发布于 2014-02-01 08:08:22
您必须在sd
中使用c
sd(c(1, 2, 3))
# [1] 1
它返回1
。这是样本的标准差,是总体标准差的估计值,基于n - 1
的分母。这是Rs sd
函数的默认行为。
如果要计算population (分母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
https://stackoverflow.com/questions/21495649
复制相似问题