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

嵌套tibble分组汇总追加列表列:按gear聚合对应唯一车型列表

问题原因

你原有代码的问题在于,map(models, c)是对每个gear分组下的models列(同一gear下包含多个列表元素)逐元素执行操作,并没有把同组的所有列表元素合并成一个整体向量。

正确解法

你可以用purrr::list_c(purrr 1.0.0及以上版本推荐)直接把同组的列表元素拼接,外层套list()保证返回结果是列表列:

library(tidyverse)

my_df %>%
  group_by(gear) %>%
  summarise(models = list(list_c(models)))

如果你使用的是旧版本purrr,可以用reduce实现同样的拼接效果:

my_df %>%
  group_by(gear) %>%
  summarise(models = list(reduce(models, c)))

补充说明

运行上述代码得到的结果和你预期的输出完全匹配:gear=3的列表长度为15,gear=4为12,gear=5为5。如果你的业务场景中可能存在跨carb分组的重复车型,可以在拼接后加unique()去重:

my_df %>%
  group_by(gear) %>%
  summarise(models = list(unique(list_c(models))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:45:04