首页 > 解决方案 > 如何使用 R 对数据框中的每 n 个 (200) 观察值求和

问题描述

我是 R 新手,因此非常感谢任何帮助!

我的 10 个变量中的每一个都有一个包含 278800 个观察值的数据框,我正在尝试创建第 11 个变量,该变量对特定变量/列的每 200 个观察值(或行)求和(sum(1:200, 201:399, 400 :599 等)类似于 excel 中的偏移函数。我尝试将我的数据子集为感兴趣的变量,目的是添加一个新变量,该变量每 200 行连续求和,但我无法弄清楚。我了解我的新“变量”将产生 1,394 个数据点(278,800/200)。我尝试使用 rollapply 函数,但输出的总和不是 200 块,而是 1:200、2:201、3:202 等)

谢谢,

标签: roffsetrollapplyrowsum

解决方案


rollapply对此有by=论据。这是一个使用 n = 3 而不是 n = 200 的较小示例。请注意,1+2+3=6、4+5+6=15、7+8+9=24 和 10+11+12=33。

# test data
DF <- data.frame(x = 1:12)

library(zoo)
n <- 3
rollapply(DF$x, n, sum, by = n)
## [1]  6 15 24 33

推荐阅读