[R-es] Loop sobre muchos data frames

Javier Marcuzzi
Fri, 10 Apr 2015 17:08:13 -0000

Estimado Oscar

Ahora que lo recuerdo, tengo algo de eso con la lectura de todos los
correos de esta lista, si tiene inconvenientes con su código busco en mi
disco, incluso creo que alguien más me ayudo con eso, no estoy seguro pero
posiblemente en Madrid en algún encuentro presentaron algo.

Javier Marcuzzi

El 10 de abril de 2015, 12:28, Jorge I Velez <jorgeivanvelez en gmail.com>
escribió:

> 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]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es