对R中的一系列值求和(不使用for循环)

时间:2012-05-08 00:52:01

标签: r

如何在R中执行此类求和?

sum_{i=1}^3 (x^2)

i=1 is lower bound
i=3 is upper bound
x^2 is the operation

所以我们将执行

1 ^ 2 + 2 ^ 2 + 3 ^ 2

使用标准循环:

tot <-0
for (x in 1:3) {
  tot <- tot + x^2
}

2 个答案:

答案 0 :(得分:4)

首先,我要指出要生成包含元素1,2,3的向量,您可以这样做:

x <- 1:3

其次,R是一个矢量化语言 - 意味着如果x是一个向量而我x + 5它将向添加5 {em> x的每个元素对我而言,不需要for循环。

# Recalling that "x <- x + 5" is the same as
for ( i in 1:length(x) ) {
    x[i] <- x[i] + 5
}
# try to do something that makes  x squared, i.e. x == c(1,4,9).

第三,查看?sum,其中sum(x)x中的所有元素相加。

答案 1 :(得分:4)

the_answer <- sum( (1:3)^2 )

For-loops是上个世纪。