所以我知道R中有一个标准偏差函数,但是我试图弄清楚如何使用for循环来编写代码来解决SD问题。
men<-c(150,175,213,241,190,132,110,208,187)
alex<-NULL
for(i in 1:length(men)
{
alex[i]<-(men[i]-178.44)^2
}
这是我到目前为止所做的和我想要做的是将(men [i] -mean)^ 2的值存储在矢量alex中,这样我就可以继续对矢量alex求和并找到标准偏差。但是,当我尝试运行此代码时收到错误消息。任何意见都表示赞赏。
答案 0 :(得分:1)
由于R中的某些计算可以应用于整个向量,因此您只需编写以下内容并忘记for
循环。
> alex <- (men - mean(men))^2
> alex
# [1] 809.08642 11.86420 1194.08642 3913.19753 133.53086
# [6] 2157.08642 4684.64198 873.53086 73.19753
根据您的评论,这是我使用for
循环执行此操作的方式。请注意alex
的初始化是一个数字向量,其长度与我们计算的向量的长度完全相同。这使得for
循环在R中运行得更快。
> alex <- numeric(length(men))
> for(i in 1:length(men)) alex[i] <- (men[i] - mean(men))^2
> alex
# [1] 809.08642 11.86420 1194.08642 3913.19753 133.53086
# [6] 2157.08642 4684.64198 873.53086 73.19753