Циклические файлы read.csv, содержащие шаблон в имени файла

Я создал вектор из 30 слов под названием «клуб».

club <- pixid$ack1

Далее я хочу импортировать 30 CSV-файлов. Каждое имя файла содержит 1 слово из слова «клуб».

for (i in club){
DCM.[i] <- read.csv(list.files(pattern = "[i]"))
}

Однако я получаю следующую ошибку:

Ошибка в файле (файл, «rt»): недопустимый аргумент «описание».

Как я могу прочитать все эти файлы, содержащие имена из вектора? Я надеюсь, что это просто синтаксическая ошибка.


person dudemcgregor    schedule 28.01.2017    source источник
comment
Вам не нужно [] Возможно, это поможет DCM <- vector("list", length(club)); for(i in seq_along(club)){DCM[[i]] <- read.csv(list.files(pattern = club[i]))} предположить, что club является character классом   -  person akrun    schedule 28.01.2017
comment
да, "клуб" - это персонаж. к сожалению, это все еще дает мне: «Ошибка в файле (файл, rt): недопустимая ошибка аргумента« описания ».   -  person dudemcgregor    schedule 28.01.2017
comment
Возможно, вам потребуется предоставить небольшой воспроизводимый пример.   -  person akrun    schedule 28.01.2017
comment
Пример: club <- c("ARI","ATL") Имена файлов: 34562_Conversions_ARI_YTD_20170128_060408_521702287.csv 6482_Conversions_BAL_YTD_20170128_060612_521699121.csv   -  person dudemcgregor    schedule 28.01.2017
comment
Что вы получаете, когда делаете sapply(clubs, function(x) list.files(pattern=x))   -  person akrun    schedule 28.01.2017
comment
Я получаю список всех файлов, содержащих шаблон из club $ARI [1] "6482_Conversions_ARI_YTD_20170128_060408_521702287.csv" [2] "Conversions_ARI_YTD.zip" $BAL [1] "6482_Conversions_BAL_YTD_20170128_060612_521699121.csv" [2] "Conversions_BAL_YTD.zip"   -  person dudemcgregor    schedule 29.01.2017
comment
Я думаю, что это ошибка, у вас есть list, поэтому используйте read.csv(list.files(pattern=club[i])[[1]])}   -  person akrun    schedule 29.01.2017
comment
Кроме того, есть вероятность, что у вас может быть более одного файла для каждого шаблона. В этом случае нам нужен второй цикл для чтения файлов по отдельности.   -  person akrun    schedule 29.01.2017
comment
попробовал это и получил Error in read.table(file = file, header = header, sep = sep, quote = quote, : duplicate 'row.names' are not allowed Да, я только что переместил все соответствующие файлы в новый каталог, чтобы избавиться от этой проблемы с переменной.   -  person dudemcgregor    schedule 29.01.2017
comment
Не могли бы вы попробовать код, который я разместил ниже в качестве решения   -  person akrun    schedule 29.01.2017


Ответы (1)


Возможно, для одного pattern в «клубе» vector существует несколько файлов. Мы перебираем «клуб» шаблонов, перечисляем файлы на основе этого шаблона, используя list.files, а затем перебираем имена файлов и читаем их с помощью read.csv.

DCM <- lapply(club, function(x) lapply(list.files(pattern = x), 
               function(x) read.csv(x, stringsAsFactors=FALSE, row.names = NULL)))

Выше приведена вложенная list, содержащая list из data.frames для каждого шаблона, предоставленного «клубом».

person akrun    schedule 28.01.2017
comment
это сделало свое дело!! спасибо за работу над этим .. спаси меня много времени. Я должен потратить время на изучение функций применения - person dudemcgregor; 29.01.2017