【问题标题】:basic summation using R使用 R 的基本求和
【发布时间】:2014-06-13 22:17:47
【问题描述】:

所以我知道 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 求和并找到标准偏差。但是,当我尝试运行此代码时收到一条错误消息。任何意见表示赞赏。

【问题讨论】:

  • 您在寻找 R 答案还是 java 答案?
  • 您在第三行忘记了 ),最好避免在 R 中使用 for 循环。看看 apply 系列函数或最好的:使用 Richard 解决方案

标签: r sum standard-deviation


【解决方案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

【讨论】:

  • 谢谢。所以显然 x 可以代表 men[i] 或整个向量它自己? (参考“x-mean(x)”)。关于为什么/如何区分它们的任何提示,或者我应该接受 R 以这种方式工作的事实......
  • 确实如此。您介意使用 for 循环在解决方案中进行编辑吗?目前正在学习统计课程的介绍,这几乎是我们迄今为止学到的所有内容。如果我在 java 中编码,我会在循环末尾添加一行,其中包含“return”或“alex[i]=___”,但不确定如何在 R 中执行此操作
  • 好的,我添加了for循环方法。
猜你喜欢
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
相关资源
最近更新 更多