如何使用 xlsx 文件在 make for 循环之后放置列名

How put column name after make for loop with xlsx file

我正在循环加载多个 xlsx 文件。这个我做得很好。但是当我想添加文档列的名称时(所有文件的名称相同)我没有成功。

library(dplyr)
library(readr)
library(openxlsx)
library(readxl)

setwd("C:/Users/MiguelAngel/Documents/R Miguelo/Guillermo Ahumada")
ldf <- list() 
listxlsx <- dir(pattern = "*.xlsx")
for (k in 1:length(listxlsx)){
  ldf[[k]] <-as.data.frame(read.xlsx(listxlsx[k]))
}

结果: 355 1500 1100 43831 1 190 850 600 43832 2 93 4000 3000 43833 3 114 4000 3000 43834 4 431 1000 700 43835 5 182 1000 700 43836 6 496 500 300 43837 7 254 500 300 43838 8 174 600 300 43839 9 397 1500 945 43840 10 198 1500 900 43841 11 271 1500 900 43842 12 94 3000 2000 43843 13 206 400 230 43844 14 305 1500 1100 43845 15 184 850 600 43846 16 90 4000 3000 43847 17 70 4000 3000 43848 18 492 1000 700 43849 19 168 1000 700 43850 20 530 500 300 43851

他们很好地加载了所有文件,但没有列的名称。

我需要添加列名:

list_file <- dir(pattern = "*.xlsx") %>% 
lapply(read.xlsx) %>% # *I use stringAsFactor but appear error.
bind_rows 

却出现这个 list_file

Form of original columns all files

我需要在使用 for 循环后放置这些列名称。

谢谢大家的帮助

我无法检查这个,因为我没有要加载的 Excel 个文件,但我认为这应该可行:

listxlsx <- list.files(path = "C:/Users/MiguelAngel/Documents/R Miguelo/Guillermo Ahumada", pattern = "*.xlsx", full.nams = TRUE)
names(listxlsx) <- listxlsx
purrr::map_dfr(listxlsx, readxl::read_excel, .id = "Filename")

(第一行是获取文件名的更好做法,而不是依赖 setwd。)

listxlsx 是一个 命名的 向量时,函数 map_dfr 给出一个名为 Filename 的列,其中的值取自 listxlsx.