De nada, Alejandro. Con la aproximacion que te envio obtendrias el resultado que buscas puesto que do.call(rbind, ...) se encarga precisamente de ello siempre y cuando TODOS las variables tengan el mismo nombre en TODOS los archivos.
Saludos, Jorge.- 2014-07-07 1:39 GMT+10:00 Alejandro José Estudillo Hidalgo < [email protected]>: > Gracias por tu respuesta Jorge. El problema es que necesito que el nombre > de las variables sólo aparezca en la primera fila de la matriz de datos > final. Es para poder realizar análisis. Por eso en mi instrucción le pedía > que leyese los nombre de las variables pero sólo para la el primer archivo. > > > El 6 de julio de 2014, 13:39, Jorge I Velez <[email protected]> > escribió: > > Estimado Alejandro, >> >> Lo mejor es trabajar con listas, sea creadas antes de o despues de leer >> los datos (esto ultimo automaticamente desde R). En cuanto a los nombres >> de las variables, creo que ahorras tiempo y problemas si los incluyes. >> >> A continuacion un ejemplo (necesitas el paquete "mets"): >> >> # install.packages('mets') >> require(mets) >> >> files <- list.files(path="D:/prueba") >> info <- do.call(rbind, lapply(files, function(x) as.data.frame(fread(x, >> header = TRUE)))) >> head(info) >> >> Como veras, no uso read.csv(), pero el resultado es el mismo y se obtiene >> en mucho menos tiempo que con cualquier version de read.*(). >> >> Saludos, >> Jorge.- >> >> >> >> 2014-07-06 22:32 GMT+10:00 Alejandro J. Estudillo <[email protected]> >> : >> >>> Buenos tardes, >>> >>> >>> >>> A ver si alguien puede ayudarme. Tengo una carpeta con 20 archivos. Cada >>> uno >>> de estos archivos es un data.frame con las puntuaciones de un >>> participante. >>> Me gustaría escribir una instrucción para que todos estos datos se >>> agrupen >>> en un solo data.frame. El caso es que para el primer de los archivos >>> tendría que leer los headers, pero no para el resto (ya que los headers >>> son >>> los mismos para cada sujeto). He intentado correr el siguiente código >>> >>> >>> >>> files<-list.files(path="D:/prueba") >>> for(i in 1:length(files)){ >>> if(i==1){ >>> matriz<-read.csv(files [i], header=TRUE) >>> }else{ >>> tmp<-read.csv(files[i],header=FALSE) >>> matriz<-rbind(matriz,tmp) >>> } >>> } >>> >>> >>> >>> Sin embargo, obtengo el siguiente error: Error in rep(xi, length.out = >>> nvar) >>> : attempt to replicate an object of type 'closure' >>> >>> >>> >>> Alguna idea de que puede estar fallando? >>> >>> >>> >>> Gracias!! >>> >>> >>> >>> Alex >>> >>> >>> [[alternative HTML version deleted]] >>> >>> >>> _______________________________________________ >>> R-help-es mailing list >>> [email protected] >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >> > > > -- > > > > *La civilización nos ha liberado de ciertas condiciones aversivas del > ambiente, pero ciertamente no nos ha liberado del ambiente mismo.(Skinner, > 1971)* > [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
