为数据框中的每个嵌套数据框导出一个 csv

Export a csv for each nested dataframe in a dataframe

我有一个数据框,其中包含每年的嵌套数据框。我正在尝试将结果列中的每个嵌套数据框导出为 csv。

看起来像这样:

MWU_Results
# A tibble: 10 x 4
    YEAR    data.oratios data.kfmaratios result           
   <dbl> <list<df[,16]>> <list<df[,16]>> <list>           
 1  2008        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 2  2009        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 3  2010        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 4  2011        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 5  2012        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 6  2013        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 7  2014        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 8  2015        [8 × 16]      [127 × 16] <tibble [15 × 3]>
 9  2016        [8 × 16]      [127 × 16] <tibble [15 × 3]>
10  2017        [8 × 16]      [127 × 16] <tibble [15 × 3]>

我希望每个 csv 的名称中都包含年份。

我尝试了以下方法,但都出现错误。

temp <- MWU_Results %>% map2(.$result, .$YEAR, ~ write.csv(.x, file = paste0(.y, ".csv")))

temp <- MWU_Results %>% by_row(~write.csv(.$result, file = .$YEAR))

尝试:

purrr::map2(MWU_Results$results, MWU_Results$Year, 
                   ~write.csv(.x, file = paste0(.y, ".csv")))

或与基数 R

中的 Map 类似
Map(function(x, y) write.csv(x, file = paste0(y, ".csv")), 
                   MWU_Results$result, MWU_Results$Year)

当您使用管道运算符时,管道的 LHS 是下一个函数的第一个输入,因此 MWU_Results 在您的尝试中作为 map2 的第一个输入。这是默认行为。您可以通过在其周围使用 {} 来阻止此行为。所以以下应该适用于管道。

MWU_Results %>% {map2(.$result, .$YEAR, ~ write.csv(.x, file = paste0(.y, ".csv")))}