如何从 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")))
我的问题与这个问题直接相关: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")))