bucle de una función sobre varios archivos
Escribí una función simple:
myfunction <- function(fileName, stringsAsFactors=TRUE,
check.names=FALSE,
skip =1,...) {
Data <- read.delim(fileName, skip = skip,
stringsAsFactors=stringsAsFactors,
check.names = check.names, ...)
cb <- list()
Index <- as.numeric(as.factor(Data[,1]))
cb <- cbind(Data, Index)
return(cb)
}
Esta función toma la primera columna del archivo llamado Datos, crea un Índice de acuerdo con esa primera columna y luego une el Archivo de Datos y el índice creado. Esta función se aplicará en el archivo denominado:myfile_00.txt
, myfile_01.txt
y así sucesivamente .. Para un solo archivo se ve así:
myfunction (fileName = "myfile_00.txt")
myfunction (fileName = "myfile_01.txt")
.......
Tengo alrededor de 1000 archivos, así que supongo que el bucle puede ser el de otra publicación:
mytxt <- dir(pattern=".txt")
n <- length(mytxt)
mylist <- vector("list", n)
for(i in 1:n) {
mylist[[i]] <- read.delim(mytxt[i], header = F, skip = 1)
}
entonces:
d <- lapply(mylist, myfunction)
Desafortunadamente no funciona ... Al usarlapply
se produce un error:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
'file' must be a character string or connection
Como soy nuevo en R, probablemente estoy cometiendo errores que no puedo resolver. ¿Alguien puede ayudarme por favor?
Mejor,
F.