我需要使用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
答案 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)