为数据框中的每个嵌套数据框导出一个 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")))}
我有一个数据框,其中包含每年的嵌套数据框。我正在尝试将结果列中的每个嵌套数据框导出为 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")))}