Как прочитать весь файл Excel в виде массива? - PullRequest
0 голосов
/ 20 февраля 2019

Мой "Data.xlsx" состоит из 10 листов.Каждый лист, представляющий один город с некоторыми данными, имеющими разные размеры, т.е. каждый лист с разными строками, но одинаковым количеством столбцов.

Я пробовал это

City_Data <- array(NA, dim = c(160,13,10));

for (istation in 1:10) {
  City_Data[,,istation] <- read.xlsx("Data.xlsx",istation)
}

Но есть ли другой способ сохранитьвсе данные автоматически (как функция) в массиве?Обратите внимание, что я взял номер строки как 160, потому что это максимальное количество наблюдений или строк всех листов.

1 Ответ

0 голосов
/ 24 февраля 2019

Вы, вероятно, должны использовать readxl и lapply, чтобы прочитать каждый лист в список.Это создаст список, где каждый элемент является одним из листов (хранится как объект dataframe в R).Попробуйте это:

library(readxl)

sheetVector <- c('sheet1', 'sheet2', 'sheet3')

sheetList <- lapply(
  sheetVector,
  function(sheet){
    read_xlsx(path = 'Data.xlsx', sheet = sheet)
  }
)

Это вернет список, содержащий три листа, названных в sheetVector.Если вы хотите объединить листы в один фрейм данных: sheetDF <- rbindlist(sheetList).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...