Sebastian Kruk
2012-Jan-10 16:30 UTC
[R-es] unir en .dbf luego de aplicar read.xls a varios archivos
Estimados: Tengo un directorio con varios archivos Excel quiero importarlos todos y grabarlos en un único archivo .dbf. Haciendolo uno por uno lo logro de la siguiente manera (solo tomo 2 archivos): archivos <- list.files(pattern = 'xls') a1 <- read.xls(archivos[1], perl="C:\\strawberry\\perl\\bin\\perl.exe",skip=12,dec=",",header=F,as.is=T) a2 <- read.xls(archivos[2], perl="C:\\strawberry\\perl\\bin\\perl.exe",skip=12,dec=",",header=F,as.is=T) a11 <- cbind(a1[1,1:2],a1[4:which(a1=="Art. 14")-1,1:7]) a21 <- cbind(a2[1,1:2],a1[4:which(a1=="Art. 14")-1,1:7]) a3 <- rbind(a11,a21) Si lo hago con lapply me queda mal. Saludos, Sebastián.
Jorge I Velez
2012-Jan-10 16:50 UTC
[R-es] unir en .dbf luego de aplicar read.xls a varios archivos
Hola Sebastian,
No tengo Windows a la mano, pero podrias intentar con RODBC (que no usa
Perl):
# para leer archivos de Excel usando RODBC
require(RODBC) # instalar primero
FromExcel <- function(yourfile, worksheet){
channel <- odbcConnectExcel(yourfile)
mydata <- sqlFetch(channel, worksheet)
odbcClose(channel)
mydata
}
archivos <- list.files(pattern = ''xls'')
info <- lapply(archivos, FromExcel, worksheet = 1) # asumiendo que la
primera hoja tiene la info
res <- lapply(info, function(x){
y <- x[-c(1:12),] # este es el "skip" que haces
cbind(y[1, 1:2], y[4:which(y == "Art. 14") - 1, 1:7]) # el resto
})
out <- do.call(rbind, res)
out
Si no funciona, podrias por favor enviarnos el resultado de str(a1) y
str(archivos), asi como el comando lapply(...) que usaste?
Un saludo,
Jorge.-
2012/1/10 Sebastian Kruk <>
> Estimados:
>
> Tengo un directorio con varios archivos Excel quiero importarlos todos
> y grabarlos en un único archivo .dbf.
>
> Haciendolo uno por uno lo logro de la siguiente manera (solo tomo 2
> archivos):
>
> archivos <- list.files(pattern = ''xls'')
>
> a1 <- read.xls(archivos[1],
>
perl="C:\\strawberry\\perl\\bin\\perl.exe",skip=12,dec=",",header=F,as.is
> =T)
> a2 <- read.xls(archivos[2],
>
perl="C:\\strawberry\\perl\\bin\\perl.exe",skip=12,dec=",",header=F,as.is
> =T)
>
> a11 <- cbind(a1[1,1:2],a1[4:which(a1=="Art. 14")-1,1:7])
> a21 <- cbind(a2[1,1:2],a1[4:which(a1=="Art. 14")-1,1:7])
>
> a3 <- rbind(a11,a21)
>
> Si lo hago con lapply me queda mal.
>
> 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]]
miguel.angel.rodriguez.muinos en sergas.es
2012-Jan-11 08:29 UTC
[R-es] unir en .dbf luego de aplicar read.xls a varios archivos
Hola Sebastian. Otra opción es utilizar XLConnect http://cran.r-project.org/web/packages/XLConnect/index.html Es un poco más "potente" pues te permite manipular libros Excel (o leer parcialmente libros y/o hojas) desde R. Creo recordar que con readWorksheetFromFile podrías hacer lo que necesitas. Un Saludo, Miguel. -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Jorge I Velez Enviado el: martes, 10 de enero de 2012 17:50 Para: Sebastian Kruk CC: r-help-es en r-project.org Asunto: Re: [R-es] unir en .dbf luego de aplicar read.xls a varios archivos Hola Sebastian, No tengo Windows a la mano, pero podrias intentar con RODBC (que no usa Perl): [...] 2012/1/10 Sebastian Kruk <>> Estimados: > > Tengo un directorio con varios archivos Excel quiero importarlos todos > y grabarlos en un único archivo .dbf. > > > [...]Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm
Marcuzzi, Javier Rubén
2012-Jan-11 12:19 UTC
[R-es] unir en .dbf luego de aplicar read.xls a varios archivos
Hola Por las dudas, a mi me paso el tener algunos archivos *.xls, todos de la misma empresa, sobre el mismo tema, eran idénticos, pero ..., no tan idénticos, tuve que unirlos a mano y me llevo bastante tiempo. Si tiene problemas verifique los archivos *.xls -----Mensaje original----- From: miguel.angel.rodriguez.muinos en sergas.es Sent: Wednesday, January 11, 2012 5:29 AM To: jorgeivanvelez en gmail.com ; residuo.solow en gmail.com Cc: r-help-es en r-project.org Subject: Re: [R-es] unir en .dbf luego de aplicar read.xls a varios archivos Hola Sebastian. Otra opción es utilizar XLConnect http://cran.r-project.org/web/packages/XLConnect/index.html Es un poco más "potente" pues te permite manipular libros Excel (o leer parcialmente libros y/o hojas) desde R. Creo recordar que con readWorksheetFromFile podrías hacer lo que necesitas. Un Saludo, Miguel. -----Mensaje original----- De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Jorge I Velez Enviado el: martes, 10 de enero de 2012 17:50 Para: Sebastian Kruk CC: r-help-es en r-project.org Asunto: Re: [R-es] unir en .dbf luego de aplicar read.xls a varios archivos Hola Sebastian, No tengo Windows a la mano, pero podrias intentar con RODBC (que no usa Perl): [...] 2012/1/10 Sebastian Kruk <>> Estimados: > > Tengo un directorio con varios archivos Excel quiero importarlos todos > y grabarlos en un único archivo .dbf. > > > [...]Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada. See more languages: http://www.sergas.es/aviso_confidencialidad.htm _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Seemingly Similar Threads
- unir varios archivos .csv en una serie historica
- unir varios archivos .csv en una serie historica
- unir varios archivos .csv en una serie historica
- importar simultaneamente varios archivos excel
- unir 2 dataframe con con igual caso pero distinto valor en igual variable