我有几个数据集与 bind_rows 合并在一起。我的代码看起来像这样
df1 <- data.frame(v1 = 1:10, v2 = 11:20)
df2 <- data.frame(v1 = 11:20, v2 = 1:10)
list(df1, df2) %>%
bind_rows(.id = "name")
Run Code Online (Sandbox Code Playgroud)
我希望该name列能够阅读"df1"fordf1和"df2"for df2。我知道我可以用来set_names()手动执行此操作...
list(df1, df2) %>%
set_names(c("df1", "df2")) %>%
bind_rows(.id = "name")
Run Code Online (Sandbox Code Playgroud)
...但我想要一种以编程方式执行此操作的方法,无论数据集名称是什么。我怎样才能做到这一点?
我们可以使用dplyr::lstorpurrr::lst会自动返回list带有参数的命名
library(dplyr)
dplyr::lst(df1, df2) %>%
bind_rows(.id = "name")
# name v1 v2
#1 df1 1 11
#2 df1 2 12
#3 df1 3 13
#4 df1 4 14
#5 df1 5 15
#6 df1 6 16
#7 df1 7 17
#8 df1 8 18
#9 df1 9 19
#10 df1 10 20
#11 df2 11 1
#12 df2 12 2
#13 df2 13 3
#14 df2 14 4
#15 df2 15 5
#16 df2 16 6
#17 df2 17 7
#18 df2 18 8
#19 df2 19 9
#20 df2 20 10
Run Code Online (Sandbox Code Playgroud)