我正在尝试在r中计算一个简单的求和(以了解它们如何在r上工作,然后在更复杂的问题中使用)。
这是我要计算的总和
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^5
,2^5
,3^5
,4^5
,5^5
有什么想法吗?
答案 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