总和不使用循环在R
我有一个向量。总和不使用循环在R
basket <- c(4,5,10,102,10);
如果我来总结,我可以打电话给
sum(basket)
如果我用for循环找出总和,
total <- 0; len <- length(basket); for(i in 1:len) {total <- total + basket[i]}
有没有一种方法,我可以找到总数,而不使用sum(),或使用这个冗长的循环结构?
add <- function(x) Reduce("+", x)
add(basket)
或写一个较短的循环:
s <- 0
for(a in basket) s<- s+a
感谢您的新功能!我需要摆脱这种循环索引的习惯...... :) –
在使用循环时,分配给“s”将返回NULL。所以第二行应该是“for(a in basket)s
没错。确认编辑 –
在R中求和真的很快。这种基本操作不需要使用for循环。 你可以在这里找到一个C++循环,R循环和R sum函数之间的小基准:http://adv-r.had.co.nz/Rcpp.html(参见“矢量输入,标量输出”部分)
谢谢!其实,我只是想了解更多关于R的知识,特别是矢量化,循环以及应用函数的不同方式。所以只是尽量推动:) –
只是好奇 - 为什么你不想用sum ? –
了解是否有更好/更快的做事;特别是了解更多关于矢量化的内容,因为我习惯于“for/while”循环... –
但是sum = + ...我没有明白。循环也不是矢量化操作。例如“+”是矢量化的。 – Sotos