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

R语言中如何生成按level顺序排列的code全组合路径?

生成所有Level对应的Code组合路径

原始数据

dt_original = tibble(
  level = c("10001","10001","10001","10002","10002","10003","10003","10003","10003","10003","10003"),
  code = c("L72.3","L70.0","L72.3","D23.5","L70.0","L40.0","L72.3","L70.0","L70.0","L72.3","L40.0")
)

解决方法

可以通过dplyr和tidyr包快速实现,步骤如下:

  1. 按level分组提取每个层级的code集合
  2. 生成所有层级code的笛卡尔积组合
  3. 将组合转换为列表格式

具体代码:

# 加载所需包
library(tibble)
library(dplyr)
library(tidyr)

# 按level拆分并提取每个层级的code向量
level_codes <- dt_original %>%
  group_split(level, .keep = FALSE) %>%
  lapply(pull)

# 生成所有路径组合并转换为列表
all_paths <- expand_grid(!!!setNames(level_codes, unique(dt_original$level))) %>%
  rowwise() %>%
  mutate(path = list(c_across(everything()))) %>%
  pull(path)

结果说明

运行后all_paths就是包含所有36条路径的列表,每条路径是一个包含三个code的向量,比如其中一条为c("L72.3", "D23.5", "L40.0"),和你示例的路径一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:24:30