Sebastian Kruk
2011-Nov-30 14:54 UTC
[R-es] importar simultaneamente varios archivos excel
Hola. En un cierto directorio tengo archivos excel y de otros tipos. Cada uno de ellos corresponde a una encuesta a una empresa X. Me gustaria importar los datos de ciertas celdas de ciertas hojas de todos los archivos excel en una sola pasada. ¿Hay alguna forma de hacerlo? Yo se que la variable Z está siempre en la celda X de la hora tanto. Me gustaría ingresarlo todo en una matriz en que en las filas tenga el nombre de la empresa y en las filas las diferentes variables. Saludos, Sebastián.
Hola, Puedes hacerlo con el paquete "xlsx". Hay una función read.xlsx2() que permite hacer lo que comentas sobre cada hoja, celda de cada fichero. Cuidado que este paquete funciona hasta la versión Excel-2007, por ahora. read.xlsx2(file, sheetIndex, sheetName=NULL, startRow=1, startColumn=1, noRows=NULL, noColumns=NULL, as.data.frame=TRUE, header=TRUE, colClasses="character") De todas formas, a poco que mires en Excel puedes no ya hacerte una macro en VB, si no con simples funciones componer estos datos en una sóla hoja como quieres. Saludos, Carlos Ortega www.qualityexcellence.es El 30/11/11, Sebastian Kruk <residuo.solow en gmail.com> escribió:> Hola. > > En un cierto directorio tengo archivos excel y de otros tipos. > > Cada uno de ellos corresponde a una encuesta a una empresa X. > > Me gustaria importar los datos de ciertas celdas de ciertas hojas de > todos los archivos excel en una sola pasada. > > ¿Hay alguna forma de hacerlo? > > Yo se que la variable Z está siempre en la celda X de la hora tanto. > > Me gustaría ingresarlo todo en una matriz en que en las filas tenga el > nombre de la empresa y en las filas las diferentes variables. > > Saludos, > > Sebastián. > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >
Hola Sebastian, Una manera simple de hacer lo que necesitas es utilizando una lista. La idea basica es definir el directorio donde tienes los archivos como tu directorio de trabajo, buscar dentro de este todos los archivos que tengan extension "xls", leerlos en una lista y luego extraer las filas y columnas que requieres. Finalmente podrias utilizar do.call() para unir las sublistas resultantes en un data.frame. A continuacion un bosquejo de esta aproximacion: # directorio de trabajo setwd(''mi directorio'') # nombres de archivos xls archivos <- list.files(pattern = ''xls'') # lectura --- ver http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows require(gdata) informacion <- lapply(archivos, read.xls, header = TRUE) # lista con toda informacion # seleccion de las filas que necesito -- supongamos que requieres # las filas 3:10 y las columnas 2:10 porcion <- lapply(informacion, function(l) l[1:3, 2:10]) # colocando las listas en un data.frame out <- do.call(rbind, porcion) out Un saludo, Jorge.- 2011/11/30 Sebastian Kruk <>> Hola. > > En un cierto directorio tengo archivos excel y de otros tipos. > > Cada uno de ellos corresponde a una encuesta a una empresa X. > > Me gustaria importar los datos de ciertas celdas de ciertas hojas de > todos los archivos excel en una sola pasada. > > ¿Hay alguna forma de hacerlo? > > Yo se que la variable Z está siempre en la celda X de la hora tanto. > > Me gustaría ingresarlo todo en una matriz en que en las filas tenga el > nombre de la empresa y en las filas las diferentes variables. > > Saludos, > > Sebastián. > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Gregorio R. Serrano
2011-Nov-30 18:54 UTC
[R-es] importar simultaneamente varios archivos excel
El paquete XLConnect te permite acceder a archivos .xls o .xlsx (y rangos dentro de esos archivos) independientemente del sistema operativo que uses y sin necesidad de otros programas auxiliares. Un saludo Gregorio R. Serrano El 30 de noviembre de 2011 18:28, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Hola Sebastian, > > Una manera simple de hacer lo que necesitas es utilizando una lista. La > idea basica es definir el directorio donde tienes los archivos como tu > directorio de trabajo, buscar dentro de este todos los archivos que tengan > extension "xls", leerlos en una lista y luego extraer las filas y columnas > que requieres. Finalmente podrias utilizar do.call() para unir las > sublistas resultantes en un data.frame. > > A continuacion un bosquejo de esta aproximacion: > > # directorio de trabajo > setwd(''mi directorio'') > > # nombres de archivos xls > archivos <- list.files(pattern = ''xls'') > > # lectura --- ver > http://rwiki.sciviews.org/doku.php?id=tips:data-io:ms_windows > require(gdata) > informacion <- lapply(archivos, read.xls, header = TRUE) # lista con toda > informacion > > # seleccion de las filas que necesito -- supongamos que requieres > # las filas 3:10 y las columnas 2:10 > porcion <- lapply(informacion, function(l) l[1:3, 2:10]) > > # colocando las listas en un data.frame > out <- do.call(rbind, porcion) > out > > Un saludo, > Jorge.- > > > 2011/11/30 Sebastian Kruk <> > > > Hola. > > > > En un cierto directorio tengo archivos excel y de otros tipos. > > > > Cada uno de ellos corresponde a una encuesta a una empresa X. > > > > Me gustaria importar los datos de ciertas celdas de ciertas hojas de > > todos los archivos excel en una sola pasada. > > > > ¿Hay alguna forma de hacerlo? > > > > Yo se que la variable Z está siempre en la celda X de la hora tanto. > > > > Me gustaría ingresarlo todo en una matriz en que en las filas tenga el > > nombre de la empresa y en las filas las diferentes variables. > > > > Saludos, > > > > Sebastián. > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Dr. Gregorio R. Serrano Dpto. Economía Cuantitativa (UCM) Voz:+34 91394 2361 Fax:+34 91394 2591 http://www.grserrano.es [[alternative HTML version deleted]]