library(tidyverse)

我有这个DFS列表:

my_list <-  list(structure(list(observations = c(1L, 5L), variables = c(4L, 
                                                                        8L)), class = "data.frame", row.names = c("asp_202003...Copy.xlsx", 
                                                                                                                  "asp_202003.xlsx")), structure(list(observations = c(3L, 1L), 
                                                                                                                                                      variables = 5:4), class = "data.frame", row.names = c("eay_201008_a.xlsx", 
                                                                                                                                                                                                            "eay_202003.xlsx")), structure(list(observations = 3:4, variables = c(4L, 
                                                                                                                                                                                                                                                                                  6L)), class = "data.frame", row.names = c("wana_202309...Copy.xlsx", 
                                                                                                                                                                                                                                                                                                                            "wana_202309.xlsx")))

我按如下方式合并DFS:

my_merge <- my_list %>% reduce(full_join)

输出: 我的合并(_M)

#  observations variables
#1            1         4
#2            5         8
#3            3         5
#4            3         4
#5            4         6

但我希望将索引名保留(或提取)在名为‘FILE’的新列中,如下所示:

请注意,情况并非如此.

# file                      observations     variables
# asp_202003...Copy.xlsx               1             4
# asp_202003.xlsx                      5             8
# etc.

还要注意,所需的输出应该有6行,而不是当前my_merge对象中的5行!在当前my_merge对象中,两行之间的值相同意味着其中一行"丢失".这也是为什么我想将文件名设置为索引.

推荐答案

您可以首先将它们转换为tibble,并将行名另存为变量,然后使用bind_rows().

library(dplyr)
my_list <-  list(structure(list(observations = c(1L, 5L), variables = c(4L, 8L)), class = "data.frame", 
                           row.names = c("asp_202003...Copy.xlsx", "asp_202003.xlsx")), 
                 structure(list(observations = c(3L, 1L), variables = 5:4), class = "data.frame", 
                           row.names = c("eay_201008_a.xlsx", "eay_202003.xlsx")), 
                 structure(list(observations = 3:4, variables = c(4L, 6L)), class = "data.frame", 
                           row.names = c("wana_202309...Copy.xlsx", "wana_202309.xlsx")))

bind_rows(purrr::map(my_list, ~as_tibble(.x, rownames="file")))
#> # A tibble: 6 × 3
#>   file                    observations variables
#>   <chr>                          <int>     <int>
#> 1 asp_202003...Copy.xlsx             1         4
#> 2 asp_202003.xlsx                    5         8
#> 3 eay_201008_a.xlsx                  3         5
#> 4 eay_202003.xlsx                    1         4
#> 5 wana_202309...Copy.xlsx            3         4
#> 6 wana_202309.xlsx                   4         6

创建于2024-03-18年第reprex v2.0.2

R相关问答推荐

提取rame中对应r中某个变量的n个最小正值和n个最大负值的条目

如何使用geom_sf在边界显示两种 colored颜色 ?

更改Heatmap Annotation对象的名称

获取一个数据库框架的摘要,该数据库框架将包含一列数据库框架,

如何删除gggvenn与gggplot绘制的空白?

基于多列将值链接到NA

如何通过Docker部署我的shiny 应用程序(多个文件)

使用strsplit()将向量操作为数据框

将文件保存到新文件夹时,切换r设置以不必创建目录

在ggplot2中更改小提琴情节的顺序

将多列合并为单独的名称—值对

查找所有站点的最小值

WRS2包中带有bwtrim的简单ANOVA抛出错误

访问数据帧中未定义的列时出现R错误

如何合并不同列表中的数据文件,包括基于名称的部分匹配,而不是一对一等价

R:如何在数据集中使用Apply

在使用ggplot2的情况下,如何在使用coord_trans函数的同时,根据未转换的坐标比来定位geom_瓷砖?

在子图内和子图之间对齐行数不均匀的表格罗布对

如何在GGPlot中控制多个图例和线型

如何在R曲线图弹出窗口中更改r和theta标签