You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R/dplyr如何实现列最大值逐行统计,遇到1时自动重置计算

R/dplyr 实现方案

核心思路

通过自定义分组实现重置统计:每次counter列出现值1时生成新的分组,统计每个分组内counter的最大值,将最大值赋值给分组内的所有行即可。

完整实现代码

首先加载依赖包:

library(dplyr)

构造示例数据(如果已有数据可跳过这一步):

data <- tibble(
  counter = c(1, 2, 3, 1, 1, 2, 3, 4, 5, 6)
)

核心处理逻辑:

result <- data %>%
  # 生成分组ID:每遇到1次counter=1,分组号+1
  mutate(group_id = cumsum(counter == 1)) %>%
  # 按自定义分组分组
  group_by(group_id) %>%
  # 每个分组内取counter的最大值作为new_column
  mutate(new_column = max(counter)) %>%
  # 取消分组
  ungroup() %>%
  # 可选:删除不需要的分组ID列
  select(-group_id)

输出验证

运行上述代码后result的输出如下,和预期完全一致:

# A tibble: 10 × 2
   counter new_column
     <dbl>      <dbl>
 1       1          3
 2       2          3
 3       3          3
 4       1          1
 5       1          6
 6       2          6
 7       3          6
 8       4          6
 9       5          6
10       6          6

内容的提问来源于stack exchange,提问作者tuan gou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:45:00