Как поместить имя столбца после цикла make for с файлом xlsx

#r #loops #xlsx

Вопрос:

Я зацикливаюсь на загрузке нескольких файлов 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

Форма исходных столбцов все файлы

Мне нужно поместить имена этих столбцов после выполнения цикла с помощью for.

Спасибо за помощь, ребята

Ответ №1:

Я не могу проверить это, так как у меня нет файлов 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 .