不使用'将向量中的每个元素添加到R中;总和';作用

不使用'将向量中的每个元素添加到R中;总和';作用,r,R,我试图在不使用任何内置函数的情况下获得向量中每个元素的总数: x <- 1:6 arraysum <- function(x){ for (i in 1:length(x)) { y <- 0 y <- i+1 } print(y) } x只需使用Reduce: Reduce(`+`, x) # [1] 21 以0开始y,然后立即将其设置为i+1,这意味着y在for循环中采用以下值:2、3、4、5、6、7。如果每次通过循环时都将值重置为0,

我试图在不使用任何内置函数的情况下获得向量中每个元素的总数:

x <- 1:6
arraysum <- function(x){
  for (i in 1:length(x)) {
    y <- 0
    y <- i+1
  }
  print(y)
}

x只需使用
Reduce

Reduce(`+`, x)
# [1] 21

以0开始
y
,然后立即将其设置为
i+1
,这意味着y在for循环中采用以下值:2、3、4、5、6、7。如果每次通过循环时都将值重置为0,请尝试移动
y。。。你期待什么?再想一想。此外,您的代码并不是试图求x的元素的和,而是求指数1:6。同样的,也可以通过
sum(x)
来实现,但是前面提到的
我试图在不使用任何*内置*函数的情况下求出向量中每个元素的总和:
。您可能希望在答案中包含一个
for
循环。@RonakShah如果您按字面意思输入,则问题无法解决。甚至
+
都是一个内置函数。哈,是的,但我假设这是教授告诉他们不要在R中使用任何内置函数的作业,但我可能是错的。@RonakShah同意,我假设教授的意思是“专为向量元素求和而设计的内置函数”。@SvenHohenstein,@RonakShah我用Edward和42的建议修改了代码,效果很好。这不是作业,没有教授,我也不是学生,我对编程完全陌生,并用这个场景测试自己。