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

Responder a