如何计算R中变量的总和

时间:2019-04-05 13:35:20

标签: r math sum

我正在尝试在r中计算一个简单的求和(以了解它们如何在r上工作,然后在更复杂的问题中使用)。

这是我要计算的总和

!(https://imgur.com/1IHl3yj

sum_{i=1}^5 (x^i),其中x来自1:5

基本上,结果应该是像这样的(sum(1^i),sum(2^i),sum(3^i),sum(4^i),sum(5^i))组成的向量,以便以后我可以对其求和以获得总和  或自动求和。 (等于5699)。

我尝试使用的代码如下:

for(i in 1:5){
  for(x in 1:5){
  a[i] <- sum(x^(i))
  }
  }
a

无论结果是这个向量

[1]    5   25  125  625 3125

它只做1^52^53^54^55^5

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这无需Search "\b(?<=([.][a-z]{3})$)|(?<=([.][a-z]{4})$)\b" (3 hits in 1 file) 循环即可解决您的问题,而更像R的for

sapply

答案 1 :(得分:0)

当然最好在R中使用内置函数(例如,sapply,sum),因为它们已经过优化,有时是用更快的编程语言(例如C)实现的。另一方面,For循环在R中运行,并且运行起来很慢。

下面的代码应该可以满足您的要求,并且可能对学习有帮助:

# initialize vector
a <- c()

for(x in 1:5) {
  # loop through all x

  # calculate sum for some x
  sum <- 0
  for(i in 1:5) {
    sum <- sum + x^i
  }
  # append result to vector a
  a <- c(a, sum)
}

print(a)
[1]    5   62  363 1364 3905
sum(a)
[1] 5699