使用“ for”循环连续保存变量

时间:2019-08-01 01:59:04

标签: r for-loop

我需要使用for保存来自循环的结果总和。

显示的结果只是变量n的值的列表,而不是这些值的总和。

for(i in 1:10){
 n=1/(i+1)^2
 m=sum(n)
 print(m)
 }
[1] 0.25
[1] 0.1111111
[1] 0.0625
[1] 0.04
[1] 0.02777778
[1] 0.02040816
[1] 0.015625
[1] 0.01234568
[1] 0.01
[1] 0.008264463

1 个答案:

答案 0 :(得分:0)

R中的大多数操作都是矢量化的,因此可以使用它们代替for循环。

在这种情况下,我们可以做到

i <- 1:10
ans <- sum((1/(i+1))^2)
ans
#[1] 0.558

,如果必须使用for循环,则可能需要使用索引将所有值存储在向量中。当前,您只是用计算出的新值覆盖以前的值。

n <- numeric(length = 10L)
for(i in seq_along(n)) {
  n[i] = 1/(i+1)^2
}
ans <- sum(n)