每个循环加上第n行

时间:2016-04-20 09:56:44

标签: r

我的目标是按每个计数对每第n行求和。也许循环函数可能会有所帮助。 我用过这段代码:  irr = rollapply( irr , width = 1 , by = n , align = "left" , FUN = sum ) 示例:

 V1
3
2
4
7
5

所以,如果n = 2,前两行将总结。

结果:

V1
5
4
7
5

所以问题是,我在另一个data.frame变量中有多个“n”。 2 5 3我希望对"n"进行更改,请在"3"完成前两行的总和后, next n = 3 结果:

5 16

这是我第一次使用r所以请原谅我所犯的任何错误,如果这个问题很难理解。谢谢

1 个答案:

答案 0 :(得分:0)

您可以根据split n数据框,然后sum覆盖每个列表

举个例子,

v1 <- data.frame(X = c(3,2,4,7,5, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4))
n <- data.frame(Y = c(2, 3, 2, 4, 1,4))


unlist(lapply(split(v1$X, rep(1:nrow(n), n$Y)), sum))

# 1  2  3  4  5  6 
# 5 16  5 22  8 10