【发布时间】:2019-07-12 13:54:22
【问题描述】:
假设我有一个向量
test1 <- 1:10
我想编写一个函数,将这个向量的 2 个连续元素的值相加。因此,输出的长度必须为“test1 -1”。
我在 Internet 上查找,发现大多数情况下都是带有循环的建议。我对 R 很陌生,仍然没有真正了解循环的语法,此外,我想要一个函数,因为我最后真正想做的是使用 purrr 包将此函数应用于更大的数据集.所以我真的只是在寻找这个简单函数的代码,以便以后可以将它用于我的大数据集。另外,我对“滚动窗口函数”进行了一些修改,这似乎很有希望,但同样,我对 R 很陌生,我想保持简单。 “cumsum”函数不是我想要的,因为我对 2 个连续元素之间的总和而不是所有元素的累积总和感兴趣。
我现在遇到的最大问题是我不知道如何告诉 R 我真正想要总结的是连续位置而不是 2 个值(不太确定你是否明白我的意思)。我试过像
这样的东西sum_fun1 <- function(x) {
[x] + [x+1]
}
但在这种情况下,他并没有得到 x 指的是一个位置,而不是那个位置/元素的内容。
非常感谢
【问题讨论】:
-
@HighPerformanceMark 嗯,我不太确定。我正在寻找一个对向量中超过 2 个连续元素求和的函数。 [diff] 计算差异,而且我想创建自己的函数,因为我稍后会使用 [purrr] 应用它,所以我很确定一旦我在那里我需要更改函数内部的一些小东西.
-
@Fabio 试试
rollapply函数