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

如何从嵌套tibble直接导出分组数据至独立CSV文件?

从嵌套tibble生成分组CSV文件的错误修正

你遇到的错误是因为group_walk中.x$data返回的是列表列(即使每个元素是单个tibble,它本身仍是长度为1的列表),而readr::write_csv要求传入的是data.frame/tibble对象,不是列表,因此触发is.data.frame(x) is not TRUE的报错。

以下是两种可行的修正方案:

方案1:修正group_walk中的数据引用

直接提取列表列中的实际tibble对象(取列表的第一个元素):

mtcars %>% 
  dplyr::group_by(cyl) %>% 
  tidyr::nest() %>%
  dplyr::group_walk(~ readr::write_csv(.x$data[[1]], paste0(.y$cyl, ".csv")))

方案2:改用purrr::pwalk遍历行(更直观)

pwalk可以直接按行遍历嵌套后的tibble,分别取出分组标识和对应的数据:

mtcars %>% 
  dplyr::group_by(cyl) %>% 
  tidyr::nest() %>%
  purrr::pwalk(function(cyl, data) {
    readr::write_csv(data, paste0(cyl, ".csv"))
  })

或者用更简洁的匿名函数写法:

mtcars %>% 
  dplyr::group_by(cyl) %>% 
  tidyr::nest() %>%
  purrr::pwalk(~ readr::write_csv(.y, paste0(.x, ".csv")))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:17:29