在R中的for循环中声明两个变量以计算函数

时间:2018-10-28 16:09:34

标签: r

我需要一个for循环,但无法正常工作。

我需要在for循环中计算一个带有两个变量的函数。该功能是

F(y, x) = 1 + y + y^2 + ... + y^x. 

例如,如果

x = 4 
F(y, x) = 1 + y + y^2 + y^3 + y^4 

以此类推。

> sum <- 1 
> for(i in 0:3){
+     for(y in 0:3){
+             sum <- sum + y ^ (i)
+     }
+ } 
print( sum ) 

[1] 61

此结果不正确。应该是“ 40”

1 个答案:

答案 0 :(得分:0)

结果是正确的:您使用代码计算的是以下总和:

1 +  (default value of sum)
1 + 1 + 1 + 1 + (i = 0)
0 + 1 + 2 + 3 + (i = 1)
0 + 1 + 4 + 9 + (i = 2)
0 + 1 + 8 + 27 (i = 3)

总计61。

如果您想要一个可以计算的函数

y ^ 0 + y ^ 1 + ... + y ^ x, 对于整数x,只需尝试

sum(y^(0:x))

您不需要for循环。

如果您坚持使用for循环,则可以尝试

F <- function(x, y) {
  .sum <- 0
  for(i in 0:x) {
    .sum <- .sum + y^i
   }
  result(.sum)
}