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

使用dplyr处理纵向ID关联数据生成匹配新变量

实现代码

首先加载dplyr包:

library(dplyr)

执行数据处理逻辑:

dat_result <- dat1 %>%
  # 给每个受试者的3次观测添加时间点索引(顺序为1/2/3)
  group_by(id) %>%
  mutate(time = row_number()) %>%
  ungroup() %>%
  # 匹配关联ID对应各时间点的x值
  left_join(
    # 构造查询表:存储所有ID各时间点的x值
    dat1 %>% 
      group_by(id) %>% 
      mutate(time = row_number()) %>% 
      ungroup() %>% 
      select(link_id = id, time, link_x = x),
    by = c("id2" = "link_id", "time" = "time")
  ) %>%
  # 按规则生成y变量
  mutate(y = ifelse(id2 == -1, -1, link_x)) %>%
  # 移除辅助计算的临时列
  select(-time, -link_x)

输出验证

运行打印代码即可得到目标结果:

print(dat_result)

输出:

id id2    x  y
1   1  -1    4 -1
2   1  -1    5 -1
3   1  -1    5 -1
4   2   1    1  4
5   2   1    1  5
6   2   1    1  5
7   3  -1    7 -1
8   3  -1 <NA> -1
9   3  -1    9 -1
10  4   3    2  7
11  4   3    2 NA
12  4   3    2  9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:45:05