我有一个数据框列表,每个列表的名称都有需要传递给列的信息(我将绑定所有数据帧)。有没有办法获取此列表名称并使其成为列中的标签?
如果列表以head(my_list)
$day0005
# A tibble: 24 x 4
TSOIL1 lon lat TIME
<dbl> <dbl> <dbl> <dbl>
1 265 -95.8 45.7 0
2 265 -95.8 45.7 60.0
3 265 -95.8 45.7 120
4 265 -95.8 45.7 180
5 265 -95.8 45.7 240
我希望每个看起来像
$day0005
# A tibble: 24 x 4
TSOIL1 lon lat TIME day
<dbl> <dbl> <dbl> <dbl> day0005
1 265 -95.8 45.7 0 day0005
2 265 -95.8 45.7 60.0 day0005
3 265 -95.8 45.7 120 day0005
4 265 -95.8 45.7 180 day0005
5 265 -95.8 45.7 240 day0005
如果您的数据在列表中开始,那么您将包含&#34; list&#34;在您的搜索字词中,恭喜您,您已经找到了正确的问题。这里的答案很简单,很棒。
如果您从一堆数据帧开始,您可能还想查看与此类似的问题。他们将向您展示如何将一堆数据帧转换为数据帧列表。然后回到这里寻找与识别和绑定所有行相关的最简单的答案。
答案 0 :(得分:1)
您可以使用dplyr::bind_rows()
:
library(dplyr)
mylist <- list(x = data.frame(a = 1:10),
y = data.frame(a = 11:20))
mydf <- mylist %>%
bind_rows(.id = "dfname")
mydf
dfname a
1 x 1
2 x 2
3 x 3
4 x 4
5 x 5
6 x 6
7 x 7
8 x 8
9 x 9
10 x 10
11 y 11
12 y 12
13 y 13
14 y 14
15 y 15
16 y 16
17 y 17
18 y 18
19 y 19
20 y 20
答案 1 :(得分:0)
试试这个:
dl <-list(data.frame(a=1:10,b=11:20,c=20:11),data.frame(a=1:10,b=11:20,c=20:11),data.frame(a=1:10,b=11:20,c=20:11),data.frame(a=1:10,b=11:20,c=20:11))
names(dl) <- c("one","two","three","four")
dl <- Map(cbind,dl,"names" = names(dl))