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]]

