如何从 R 中嵌套数据帧的每个元素写入磁盘数据?

How to write to disk data from each element of nested data frame in R?

我的问题与这个问题直接相关:,但我无法使解决方案起作用,因此我想避免安装额外的必需包 purrrlyr

我需要将一个嵌套data.frame的每个元素(data.frame)写入一个table,每个元素的名称对应嵌套[=的第一列26=]:

ir <- iris %>% group_by(Species) %>% nest() 
ir$Species <- as.character(ir$Species)

A tibble: 3 x 2

Species    data             
  <chr>      <list>           
1 setosa     <tibble [50 x 4]>
2 versicolor <tibble [50 x 4]>
3 virginica  <tibble [50 x 4]>

我尝试了链接的解决方案:

temp <- ir %>% purrrlyr::by_row(~write.csv(.$data, file = .$Species)) 

但收到以下错误:

Error in by_row(., ~write.csv(.$data, file = .$Species)) : 
  STRING_PTR() can only be applied to a 'character', not a 'list'

我已经阅读了有关 purrr::walk 的内容,但我似乎无法弄清楚如何实施它。

我们可以使用map2

library(purrr)
map2(ir$data, ir$Species, ~ write.csv(.x, file = paste0(.y, ".csv")))

如果我们不想在控制台上输出 NULL 消息,请使用 iwalk

iwalk(setNames(ir$data, ir$Species), ~ write.csv(.x, file = paste0(.y, ".csv")))