gpt4 book ai didi

r - 条件累计和

转载 作者:行者123 更新时间:2023-12-02 05:52:47 26 4
gpt4 key购买 nike

我有这个数据框

t<-data.frame(v1=c(1,2,1,4,6,7,8,2,3,4,8,1,2), v2=c(2,3,6,1,-3,-2,1,2,-3,6,7,-2,1))

从上到下扫描data.frame,只要v2为正,我就想得到v1的累加和。当 v2 变为负数时,它应该停止,记录(到那时为止的 cum.sum 的)值并且累积和应该从下一个第一个正数 v2 重新开始,依此类推。所以最后上面的数据框将是向量

8, 10 , 12, 2

有什么想法吗?

最佳答案

我更改了 data.frame 的名称,因为 t 是一个函数(转置)。如果您只想要总和,我不明白为什么要使用 cumsum。

dtf<-data.frame(v1=c(1,2,1,4,6,7,8,2,3,4,8,1,2), v2=c(2,3,6,1,-3,-2,1,2,-3,6,7,-2,1))
groups <- rle(dtf$v2 > 0)

dtf$groups<- rep(seq_along(groups$values), groups$lengths)
library(plyr)
daply(dtf, .(groups), function(x) sum(x$v1))[groups$values]
1 3 5 7
8 10 12 2

关于r - 条件累计和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com