我想问一下如何在不使用其中一个就绪函数(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)
答案 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.