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

R语言如何将两列数据框按id分组转换为命名向量列表

R实现分组生成指定格式向量列表的方案

你可以直接用以下两种常用方案实现需求,逻辑简单易维护:

方案1:Base R 原生实现(无依赖,推荐)

不需要安装任何第三方包,两行代码即可完成:

# 按id列拆分code列,生成分组列表
a_list <- split(df$code, df$id)
# 按Tr+id的规则修改列表元素名称
names(a_list) <- paste0("Tr", names(a_list))

运行后生成的a_list和你给出的期望结构完全一致,可通过identical(a_list, list(Tr1 = c("a","b","c"), Tr2 = c("a","b")))验证,返回结果为TRUE。

方案2:tidyverse 工作流实现

如果你平时用dplyr处理数据,可以用以下适配tidyverse语法的写法:

library(dplyr)

a_list <- df %>%
  # 按id分组
  group_by(id) %>%
  # 把每组的code值聚合为列表列
  summarise(code_vec = list(code), .groups = "drop") %>%
  # 将两列数据框转换为命名列表
  tibble::deframe() %>%
  # 批量修改列表元素名
  setNames(paste0("Tr", names(.)))

提示:如果id列存在非连续值、或者有缺失的id,上述两种方法都会自动适配实际存在的id生成对应列表项,不会产生多余的空元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:06:19