Как создать трехмерный data.frame из нескольких файлов Excel в R - PullRequest
1 голос
/ 05 марта 2020

У меня есть следующий пример кода:

library(readxl)
library(tidyverse)
N <- 5 #number of datasets to pull data from
ind <- c("2010", "2011", "2012", "2013", "2015")

A <- array(rep(1, 91*144*5), dim=c(91,144,5))

for (k in seq_along(ind)) {
   A <- read_excel(paste0("~R/data", ind[k], ".xlsx"), range="B3:EO94")
}

Я знаю, что это невозможно воспроизвести из-за невозможности загрузки данных. Приведенный выше код фиксирует мой мыслительный процесс в том, что я пытаюсь сделать. Я хочу создать матрицу A(i,j,k), где i и j - строки и столбцы, соответственно, из файлов k excel. Так что в моем случае k - это годы в ind. У меня есть эти 5 файлов Excel, и они имеют одинаковые размеры.

Чего я хочу от этого процесса, так это возможности взять определенный набор i,j и создать новый вектор с длиной = k хотя это не тот вопрос, который я задаю здесь. Для контекста i и j - это долгота и широта, а k - это год.

1 Ответ

1 голос
/ 05 марта 2020

Можно записать листы в список, а затем создать массив из незарегистрированного содержимого:

library(readxl)

ind <- c("2010", "2011", "2012", "2013", "2015")
A <- list()

for (k in seq_along(ind)) {
   A[k] <- read_excel(paste0("~R/data", ind[k], ".xlsx"), range="B3:EO94")
}

result <- array(unlist(A), dim=c(91,144,5))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...