想看看有人有更优雅的解决方案.但是在使用apply时跟踪当前索引的适当方法是什么.例如,假设我想从我正在评估的当前元素中获取总和,直到我的向量结束.
这是最好的方法吗?
y = rep(1,100)
apply(as.matrix(seq(1:length(y))),1,function(x) { sum(y[x:length(y)])})
Run Code Online (Sandbox Code Playgroud)
我很感激你的意见.
这看起来更像是一项任务sapply
:
sapply(seq_along(y), function(x){sum(y[x:length(y)])})
Run Code Online (Sandbox Code Playgroud)
对于您的具体示例,有许多其他选项(如反转向量y
然后使用cumsum
),但我想这是一般模式:使用seq_along
或最坏的情况seq
下获取您感兴趣的序列,并将其传递给*apply
.