[R-es] Loop sobre muchos data frames

Jorge I Velez jorgeivanvelez en gmail.com
Vie Abr 10 17:28:01 CEST 2015


Oscar,

Cambia

(l[i])

por

read.table(l[i])

Olvide leer cada archivo en el codigo anterior.

Saludos,
Jorge.-

2015-04-11 0:02 GMT+10:00 Oscar Benitez <oscar.benitez1962 en gmail.com>:

> Jorge
> Gracias por el consejo. Aparentemente no lo estoy aplicando bien, pues el
> objeto que obtengo no contiene lo que quiero.
> Me explico, al ejecutar
>
> txt <- vector('list', length = length(names)) #names el el vector donde ya
> tenía almacenada la lista de txt's
> for(i in seq_along(txt)){
>   txt[[i]] <- Corpus(VectorSource(names[i]))
> }
>
> obtengo el objeto txt:
> > class(txt)
> [1] "list"
>
> si extraigo solamente el primer objeto de esa lista:
> > txt[[1]]
> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>>
>
> si quiero ver el contenido del primer copus
>
> > inspect(txt[[1]])
> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>>
>
> [[1]]
> <<PlainTextDocument (metadata: 7)>>
> qB001.txt
>
> me informa cosas sobre el objeto, pero los datos no están allí... debería
> mostrarme algo así como:
>
> inspect(cbD02[1:1]) #inspecciono el corpus cbD120, creado a mano por la
> sentencia cbD120<-Corpus(VectorSource(qT120))
>
> #......contenido del corpus......
> I went to go see some gypsy to tell me my future, but she asked for my
> photograph instead.
> itz me the one who was talkin to u last time !!!
> starts at 4pm. come get sunny munny :)
> kind of scary to imagine what needs military wiping!!!!
> #.....más.contenido del corpus......
>
>
> si quiero aplicarle un función propia de limpieza de corpus, por ejemplo
> eliminar los números presentes en el corpus
> > tm_map(txt[[1]], removeNumbers)
> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>>
>
> no hace nada de nada...
>
> Saludos
>
> Oscar
>
>
>
>
>
> El 10 de abril de 2015, 1:15, Jorge I Velez <jorgeivanvelez en gmail.com>
> escribió:
>
>> Oscar,
>>
>> Una forma de trabajar con este tipo de archivos es utilizando listas:
>>
>> # directorio del proyecto
>> setwd('~/proyecto')
>>
>> # archivos de texto
>> l <- list.files(pattern = '.txt')
>>
>> # procesamiento
>> txt <- vector('list', length = length(l))
>> for(i in seq_along(txt)){
>> txt[[i]] <- Corpus(VectorSource(l[i]))
>> }
>>
>> # para acceder a la informacion del primero archivo, solo debes escribir
>> txt[[1]]
>>
>>
>> Espero sea de utilidad.
>>
>> Saludos,
>> Jorge.-
>>
>>
>> 2015-04-10 14:14 GMT+10:00 Oscar Benitez <oscar.benitez1962 en gmail.com>:
>>
>>> Hola a todos!
>>> Estoy en un proyecto de text mining y por razones de los recursos con que
>>> cuento tuve que separar los archivos de texto de input del proyecto en
>>> muchos archivos pequeños.
>>> Luego de transformar cada uno de estos archivos en un corpus separado,
>>> puedo aplicar limpieza sobre cada corpus, buscar n-gramas, construir cada
>>> termDocumentMatrix y finalmente reunir todo en una sola TDM.
>>>
>>> Pero estoy atorado en el paso de transformar cada uno de los archivos en
>>> corpus mediante un loop. Es decir que en lugar de hacer esto infinitas
>>> veces:
>>>
>>> #Librerias necesarias
>>> library(tm)
>>>
>>> corpus_001<-Corpus(VectorSource(qBlog001))
>>> corpus_002<-Corpus(VectorSource(qBlog002))
>>> corpus_003<-Corpus(VectorSource(qBlog003))
>>> .........
>>> corpus_150<-Corpus(VectorSource(qBlog150))
>>> ........
>>>
>>> quisiera poder armar un loop que haga el trabajo, como por ejemplo
>>>
>>>
>>>
>>> #lista con los nombres que quiero para cada corpus
>>> c_names <- paste("corpus_",formatC(seq(length(bNames)),
>>>                                                 width=3, flag="0"),
>>> sep="")
>>>
>>> donde bNames es la lista de los df que tengo cargados "qBlog001"
>>> "qBlog002"..."qBlog150"...
>>>
>>> algo así es lo que tengo en mente:
>>>
>>> for (i in bNames) {
>>>   for (j in c_names) {
>>>     j<- Corpus(VectorSource(i))
>>>   }
>>> }
>>>
>>> Pero no funciona, he probado con lapply, con sapply, con llply de la
>>> librería (plyr) y no encuentro la manera de hacerlo..
>>> Cualquier sugerencia sera bienvenida!
>>> Muchas gracias por adelantado!
>>>
>>>
>>> --
>>> Oscar Benitez
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es en r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>
>
> --
> Oscar Benitez
>

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es