Чтение файла Excel (XLSX) файл один за другим в R - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть куча файлов Excel в моем каталоге. Есть ли способ прочитать их все по отдельности (не добавляя друг друга) в одну команду. Например.

В моей папке 3 файла File1.xlsx File2.xlsx File3.xlsx

Ожидаемый вывод в R (вместо чтения их отдельно)

File1 
## should have File1 contents
File2
## should have File2 contents
File3
## should have File3 contents

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Приведенный ниже код

  • загружает библиотеку readxl
  • создает переменную файлов в текущем каталоге с расширением .xlsx
  • , затем читает в файлы с функцией lapply () в список фреймов данных

library(readxl) file.list <- list.files(pattern='*.xlsx') df.list <- lapply(file.list, read_excel)

0 голосов
/ 05 апреля 2020

Функция assign должна вам помочь - она ​​присваивает значение имени, указанному в виде строки. Поэтому следующий код должен делать то, что вы хотите (подсказка: используйте gsub для очистки несловесных символов для создания правильного имени переменной):

library(readxl)
for (file in list.files(".", pattern = "xls$", full.names = TRUE)) 
    assign(gsub("\\W", "", file), read_excel(file))

Мы видим, что у нас есть два объекта в нашей рабочей области:

> ls()
[1] "file_1xls" "file_2xls"

Теперь посмотрим, что они из себя представляют:

> for(x in ls()) str(get(x))
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   1 obs. of  2 variables:
 $ a: num 1
 $ b: num 2
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   1 obs. of  2 variables:
 $ c: num 4
 $ d: num 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...