首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中按群求连续非零数的最高和

R中按群求连续非零数的最高和
EN

Stack Overflow用户
提问于 2021-02-04 18:41:32
回答 1查看 171关注 0票数 1

我有一长串的结果,从小组的连续观察。数据集如下所示:

代码语言:javascript
复制
df <- data.frame (ID = c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3),
                  EV = c(0,0,3,2,3,0,1,1,1,2,0,0,1,0,0,0,4,5,1,2,0,2,2,2,2))

ID #1显示了两个连续的非零数字序列,3-2-3和1-1.3-2-3之和大于1-1,我想要8. ID #2有1-2和1,因此正确的结果是3. ID #3有4-5-1-2和2-2-2,因此期望的结果是12。

我想要一个数据作为输出,像这里;

代码语言:javascript
复制
  ID RE
1  1  8
2  2  3
3  3 12

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-04 19:32:47

我有一个data.table方法。

代码语言:javascript
复制
library( data.table )
#make it a data.table
setDT(df)
#make groups based on group == 0 and get their sums
ans <- df[, .(sum = sum(EV)), by = .(ID, rleid( ID, EV == 0 ) ) ]
#get the maximum sum for each ID, and drop the rleid column created in the previous row
ans[ ans[, .I[sum == max(sum)], by=.(ID)]$V1][, rleid := NULL][]
#    ID sum
# 1:  1   8
# 2:  2   3
# 3:  3  12
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66051817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档