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

纵向数据集变量修改:保留个体层面值的首次出现(dplyr实现)

基于dplyr的实现方案

首先加载dplyr工具包:

library(dplyr)

执行如下转换代码即可得到目标结果:

dat <- dat %>%
  # 按个体i分组,所有计算在个体维度独立执行
  group_by(i) %>%
  mutate(
    # 标记x首次从0切换为1的行:当前行x=1,上一行x=0(第一行默认上一行x为0,兼容首行即x=1的场景)
    first_switch = x == 1 & lag(x, default = 0) == 0,
    # 仅首次切换行保留j1值,其余行设为NA
    j2 = ifelse(first_switch, j1, NA)
  ) %>%
  # 删除临时辅助列、解除分组
  select(-first_switch) %>%
  ungroup()

执行后打印dat即可得到和预期完全一致的结果。

内容的提问来源于stack exchange,提问作者C.F.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:24:03