[R-es] Loop sobre muchos data frames

Oscar Benitez
Fri, 10 Apr 2015 14:02:08 -0000

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