对所有 x 值求和并减去它们的平均值

Sum all x-values and subtract by their mean

我正在尝试在 R 中对标准差公式进行硬编码(是的,我知道有一个函数可以执行此操作)。这是我目前所拥有的。

x = c(1, 6, 2, 7, ... #shortened for clarity
n = length(x)
xBar <- mean(x)
...
StDev = sqrt((sum(x - xBar)) / (n-1))

这输出零。我在 R 方面经验不足,但我相信我的问题在于 sum(x - xBar)。我怎样才能将所有 x 值的总和减去平均值?谢谢!

我不想写新函数。

试试这个公式:

x = c(1, 6, 2, 7)
sqrt(sum((x-mean(x))^2)/(length(x)-1))
[1] 2.94392

如您所见,标准 R 函数的输出相同 sd:

sd(x)
[1] 2.94392

您缺少 ^2。这是具有正确公式的相同代码。

x <- c(1, 6, 2, 7)
n <- length(x)
xBar <- mean(x)
...
StDev <- sqrt(sum((x - xBar)^2) / (n - 1))

在这里你可以看到它给出了与 sd() 相同的输出。

StDev 
[1] 2.94392
sd(x)
[1] 2.94392