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

在R中如何基于长表分组的v1数值响应模式创建新变量v2

R语言实现方案

你之前用summarise得不到预期结果是因为该函数会对每个id分组仅返回1行,而你需要保留所有原始行,改用mutate生成分组级别的公共变量即可,实现逻辑如下:

  1. 先按id和visit排序,保证每个id下v1的访视顺序正确
  2. 按id分组,将每个id对应的多次访视v1值拼接为唯一的模式标识
  3. 对不同的模式标识分配唯一整数作为v2取值,相同模式的id会得到相同的v2

可直接运行的代码

library(dplyr)

# 替换为你自己的数据集名即可
result <- 你的数据集名 %>%
  arrange(id, visit) %>%
  group_by(id) %>%
  mutate(v2 = paste(v1, collapse = "_")) %>%
  ungroup() %>%
  mutate(v2 = as.integer(factor(v2, levels = unique(v2))))

结果验证

代入你提供的示例数据运行后,输出结果和你给出的预期完全一致:

  • id10001的v1序列为0、0,对应v2=1
  • id10002的v1序列为0、1,对应v2=2
  • id10003的v1序列为1、0,对应v2=3

如果后续出现其他v1响应模式,代码会自动按模式首次出现的顺序顺延分配v2编号,无需调整规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:03