2013-08-18 2 views
0

Я пытаюсь решить небольшую проблему в R о чтении кратных файлов с тем же именем, но выделенных в разных каталогах.Прочтите многократные файлы в R, выделенные в разных каталогах, но с тем же именем

У меня есть 100 файлов с именем R04 и с расширением .xlsx, но они выделяются в 100 различных каталогов, например:

file 1: C:\General Data\Month1\R04.xlsx

file 2: C:\General Data\Month2\R04.xlsx

.

.

.

file 100: C:\General Data\Month2\R04.xlsx

Моя проблема в том, что я не могу получить, чтобы прочитать эти файлы. Возможно, их можно прочитать с помощью for, и из-за того же имени в 100 файлах я не знаю, можно ли назвать каждый из них числом, связанным с месяцем, например, в случае первого файла имя должно be 01 за месяц 1 и т. д.

+0

Пробовали ли вы чтение одного файла первый Если да, то пожалуйста, вы можете разместить код , – Metrics

+0

@Metrics @agstudy OK, Когда я читаю один файл, я делаю это, и все в порядке: 'setwd (" D:/Documentos/Files/Month1 ") библиотека (RODBC) Base =" R04.xlsx " conexion = odbcConnectExcel2007 (Base) Month1_R04 = sqlQuery (channel = conexion, "select * from [Hoja1 $]", as.is = TRUE) close (conexion) 'Проблема в том, что у меня есть 100 различных каталогов, таких как D:/Documentos/Files/Month1' с 2,3 и т. Д., И я ищу способ сделать это с циклом, потому что число месяцев меняется, и у меня будет 101, 102 и т. Д. И вы можете увидеть, что у меня будет другой проблема с структурой названия 'Month1_R04' для каждого файла – Duck

ответ

0

Попробуйте использовать пакет XLConnect.

library(XLConnect) 
file1 <- readWorksheet(loadWorkbook("C:\General Data\Month1\R04.xlsx"),sheet=1) 
1

Я хотел бы использовать list.files перечислить мои файлы по шаблону. Затем некоторое регулярное выражение, чтобы назвать мои файлы.

Например:

library(XLConnect) 
files.path <- list.files(pattern=".*R04.xlsx",full.names=TRUE) 
setNames(lapply(files.path, function(x) read.xlsx(x,1)), 
     gsub('.*/(.*)/R04.*','\\1_R04',files.path)) 

Используя некоторые данные, чтобы показать, как я использую gsub здесь:

ll <- c("C:/General Data/Month1/R04.xlsx", 
     "C:/General Data/Month2/R04.xlsx", 
     "C:/General Data/Month3/R04.xlsx") 
gsub('.*/(.*)/R04.*','\\1_R04',ll) 
[1] "Month1_R04" "Month2_R04" "Month3_R04" 
+0

Но у меня есть файлы' R04' в папках с разными версиями, но не в том же! – Duck