如何使用for循环计算r中向量的总和

时间:2016-08-07 10:19:43

标签: r

我想问一下如何在不使用其中一个就绪函数(sum,mean等)的情况下计算R中向量的总和。抱歉这个愚蠢的问题!!!

我尝试了以下但是没有用。你能告诉我我做错了什么吗? 代码是:

x<-c(1,2,3)
sumfun<-function(y){
sum<-0
for(i in 1:(length(y)-1)){
sum=sum+y[i]
}
print(sum)
}
sumfun(x)

2 个答案:

答案 0 :(得分:1)

这些都返回x:

中元素的总和
Sum <- 0
for(x_ in x) Sum <- Sum + x_
Sum

Sum <- 0
for(i in seq_along(x)) Sum <- Sum + x[i]
Sum

Reduce(`+`, x)

# recursive solution
summer <- function(x) if (length(x) > 0) x[1] + Recall(x[-1]) else 0
summer(x)

sum(x)

# limited as it assumes x has three elements
x[1] + x[2] + x[3]

答案 1 :(得分:0)

您应该更改for loop的范围,使其读取第一个指向最后一个索引的值,从而删除-1中的for(i in 1:(length(y)-1))。该修复使整个代码看起来像:

x<-c(1,2,3)

sumfun<-function(y){
  sum<-0
  for(i in 1:(length(y))){
    sum=sum+y[i]
  }
  print(sum)
}
sumfun(x)

这应打印出6.