R 有没有办法自动将文件名设置为列名?

R 有没有办法自动将文件名设置为列名?,r,tidyverse,readxl,R,Tidyverse,Readxl,我对R比较陌生。我有一个包含许多文件的文件夹(例如5m.xls、10m.xls等)。我使用map_dfc读取文件(见下面的代码)并将它们放在一个表中。这些文件包含一个包含两列(x,y)的表。 运行代码后得到的表包含名为x1、y1、x2、y2等列,。。。。。。。 因此,我无法确定它来自哪个文件。 我想将列名设置为从中读取列名的文件名,因此我尝试了以下方法: file_list <- list.files("folder", full.names=TRUE,pattern = ".xls")

我对R比较陌生。我有一个包含许多文件的文件夹(例如5m.xls、10m.xls等)。我使用map_dfc读取文件(见下面的代码)并将它们放在一个表中。这些文件包含一个包含两列(x,y)的表。 运行代码后得到的表包含名为x1、y1、x2、y2等列,。。。。。。。 因此,我无法确定它来自哪个文件。 我想将列名设置为从中读取列名的文件名,因此我尝试了以下方法:

file_list <- list.files("folder", full.names=TRUE,pattern = ".xls")
files<-tibble()
files<-map_dfc(file_list,.f=read_excel ,col_names=c("nm",file))

file_list您可以使用正则表达式从
file_list
的字符元素中提取文件名,并将其作为额外列添加到每个导入的数据帧中,或设置新的列名

请注意,我使用
.xlsx
而不是
.xls
。当我使用后者时,由于某种原因(可能是写入
.xls
的问题)会出现错误。确保更改后缀以处理文件

首先,图书馆和数据:

库(tidyverse)
图书馆(readxl)
图书馆(writexl)
目录创建(“文件夹”)
走(1:4,~write_xlsx(tibble(x=sample(10,5),y=sample(10,5)),
str_glue(“文件夹/文件{.}.xlsx”)
)
)
要获取所需的数据帧格式,可以执行以下操作:

# A tibble: 3 x 8                                                                                                     
  file1_x file1_y file2_x file2_y file3_x file3_y file4_x file4_y
    <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
1       8       9       5       3       3       6       3       9
2       3       5       8       6       7       5       2       5
3       4      10       7       2       8       2       7       1
map\u-dfc(文件列表,~{

df@NawDH很高兴听到。你能按一下吗√ 到左边去接受答案,这样其他人也知道什么对你有用吗?
# A tibble: 12 x 3                                                                                                    
       x     y file 
   <dbl> <dbl> <chr>
 1     8     9 file1
 2     3     5 file1
 3     4    10 file1
 4     5     3 file2
 5     8     6 file2
 6     7     2 file2
 7     3     6 file3
 8     7     5 file3
 9     8     2 file3
10     3     9 file4
11     2     5 file4
12     7     1 file4