【发布时间】:2018-09-23 11:28:46
【问题描述】:
我在一个列表中有一堆数据框。我正在尝试向每个数据框添加一个新列,并将数据框的“名称”作为值。
我的示例数据:
library(tidyverse)
df_2018 <- data_frame(y1 = c(1, 2, 3),
y2 = c(4, 5, 6))
df_2017 <- data_frame(y1 = c(3, 2, 1),
y2 = c(6, 5, 4))
list <- list(df_2017 = df_2017, df_2018 = df_2018)
结果:
> list
$df_2017
# A tibble: 3 x 2
y1 y2
<dbl> <dbl>
1 3 6
2 2 5
3 1 4
$df_2018
# A tibble: 3 x 2
y1 y2
<dbl> <dbl>
1 1 4
2 2 5
3 3 6
期望的结果:
> list
$df_2017
# A tibble: 3 x 3
y1 y2 year
<dbl> <dbl> <chr>
1 3 6 df_2017
2 2 5 df_2017
3 1 4 df_2017
$df_2018
# A tibble: 3 x 3
y1 y2 year
<dbl> <dbl> <chr>
1 1 4 df_2018
2 2 5 df_2018
3 3 6 df_2018
我正在学习 purrr 的 map() 函数,所以如果你能用 purrr 显示答案,加分!
我正在考虑以下问题,但这不起作用:
map(list,
add_column,
~ year = names(.x))
【问题讨论】: