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

基于课程信息列去重,将项目相关列折叠为列表(R语言)

解决方法

用dplyr实现(直观易读)

通过分组后将项目列转为列表,既能去重课程行,又完整保留所有关联的项目信息:

library(dplyr)

modified_df <- df %>%
  group_by(coursecode, coursename, courseurl) %>%
  summarise(
    programme_faculty = list(programme_faculty),
    programme_name = list(programme_name),
    programme_ects = list(programme_ects),
    .groups = "drop"
  )

运行后查看结果,列表列会以c("FSE", "FSE", "FSE")的形式显示,和你期望的格式一致。要查看某课程的具体项目信息,比如第一个课程的项目名称,直接用modified_df$programme_name[[1]]即可提取。

用data.table实现(大数据集更高效)

如果你的数据集规模很大,data.table的处理速度会更有优势:

library(data.table)

setDT(df)
modified_df <- df[, .(
  programme_faculty = list(programme_faculty),
  programme_name = list(programme_name),
  programme_ects = list(programme_ects)
), by = .(coursecode, coursename, courseurl)]

补充说明

你之前尝试的aggregate()函数默认会将分组结果简化为向量,无法直接生成列表列,所以不适合这个场景。上面两种方法生成的列表列,既能满足后续课程分析的去重需求,又能随时查询该课程关联的所有项目信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:00:31