本文介绍了R中向量中的连续/滚动总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设在 R 中我有以下向量:

Suppose in R I have the following vector :

[1 2 3 10 20 30]

如何执行一个操作,即在每个索引处对 3 个连续元素求和,从而得到以下向量:

How do I perform an operation whereby at each index 3 consecutive elements are summed, resulting in the following vector :

[6 15 33 60]

其中第一个元素 = 1+2+3,第二个元素 = 2+3+10 等等...?谢谢

where the first element = 1+2+3, the second element = 2+3+10 etc...? Thanks

推荐答案

你拥有的是一个向量,而不是一个数组.您可以使用 zoo 包中的 rollapply 函数来获取所需的内容.

What you have is a vector, not an array. You can use rollapply function from zoo package to get what you need.

> x <- c(1, 2, 3, 10, 20, 30)
> #library(zoo)
> rollapply(x, 3, sum)
[1]  6 15 33 60

查看 ?rollapply 以进一步了解 rollapply 的作用以及如何使用它.

Take a look at ?rollapply for further details on what rollapply does and how to use it.

这篇关于R中向量中的连续/滚动总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 00:30