总结名单成员一步一步

问题描述:

我有一个非常简单的问题,但我无法在R中找到一个简单的解决方案,因为我曾经通过遍历其他语言的递增for-loop来解决此类问题。总结名单成员一步一步

比方说,我有一个随机分布的数字列表,如:

rand.list <- list(4,3,3,2,5) 

我想改变这种随机分布格局进入一个不断上升的格局,因此结果会是这样的:

[4,7,10,12,17] 
+0

很快的男人。你的解决方案有效你可以发布这个答案,以便将其标记为解决方案吗? – MayaK

它首先要做到cumsum(unlist(rand.list)),其中unlist将列表折叠为普通向量。但是,我的幸运尝试显示cumsum(rand.list)也可以。

我不清楚这项工作,作为cumsum调用.Primitive的源代码,这是一个内部的S3方法调度程序,不容易进一步调查。但我再拍互补实验如下:

x <- list(1:2,3:4,5:6) 
cumsum(x) ## does not work 

x <- list(c(1,2), c(3,4), c(5,6)) 
cumsum(x) ## does not work 

在这种情况下,我们要做的cumsum(unlist(x))

+0

您的解决方案同样适用于Reduce功能,但此功能似乎特别针对我的问题,因此我将其标记为解决方案。 – MayaK

+0

当谈到R时,我还是一个新手,所以我很抱歉。使用C级评估意味着cumsum正在使用向量化技术,比如那些应用迭代列表的函数,因此速度更快? – MayaK

尝试使用Reduceaccumulate参数集TRUE

Reduce("+",rand.list, accumulate = T) 

我希望这有助于。