У
Ι есть список файлов .txt, которые содержат данные для определенных c моделей и для c месяцев. Я прочитал их все в al oop, и они хранятся в списке, как показано в следующем коде, который отлично работает!
library("dplyr")
library("tidyr")
library("reshape2")
library("plyr")
library("data.table")
library("gridExtra")
library("varhandle")
library("lattice")
library("rowr")
library("lubridate")
library("hydroTSM")
#
####################################
########### MONTHLY LOOP ###########
####################################
#
mons = c("OCT","NOV","DEC","JAN","FEB","MAR")
#
#####################
##### LOAD CMIP5 ####
#####################
for (i in 1:length(mons)) {
#
print(mons[i])
setwd("/mnt/.../cmip5/")
# Load all files
files = list.files(pattern="*.txt", full.names=F)
files
# Read all files as data frames
dat = lapply(files, function(x){
read.table(x, header=F, sep=",")
})
# Rename files
names(dat) = files
# Get all MONTHS ###LOOP HERE###
dat_regA_cmip5 = dat[grepl(mons[i], names(dat))]
length(dat_regA_cmip5)
#
}
Однако я хочу преобразовать список в один фрейм данных со многими столбцами, и я делаю это с помощью:
cmip5 = do.call(cbind, dat_regA_cmip5)
Когда я применяю вышеуказанную строку с помощью do.call на одном фрейме данных (dat_regA_cmip5: выбран вручную на один месяц, следовательно, не внутри mons l oop) он работает нормально. Но когда я помещаю его в монеты l oop, я получаю следующую ошибку:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 20, 19
Примечание: l oop работает для OCT, NOV и DE C, но останавливается на JAN