[R-es] wordcloud y tabla de palabras [Avanzando]

Alfredo Alvarado david.alvarado.r en gmail.com
Mie Jul 30 22:28:08 CEST 2014


Buenas tardes grupo. Saludos cordiales a todos.
Nuevamente muchas gracias Carlos O. por tus orientaciones y atención.
Siguiendo tu sugerencia, acá copio los dos documentos trabajados como
me dijiste, con las dos wordclouds individuales. Efectivamente, logré
hacerlas, y hasta experimenté un poco con barplot, pero todavía no
copio el ejemplo porque no lo tengo del todo "bajo control". Sin
embargo, hasta las nubes de palabras, y por ejemplo los comandos los
corrí:

1) >findFreqTerms(tdm2, lowfreq=15)
2) >findAssocs(tdm2, "casos", 0.50)
3) >d<-tm_map(d,removeWords, c("registrados", "número", "respectivamente"))

También los corrí con sus respectivos resultados.
Esta es la forma cómo hice el trabajo para cada fichero individualmente:


########### 1er Documento ######################

> informe1<-readLines("./DIRECTORIO/Informes/2005/2005_21SeguridadCiudadana.txt", encoding="UTF-8")

>informe1<-iconv(enc2utf-8(informe1), sub = “byte”)

>corpus<-Corpus(VectorSource(informe1))

> d<-tm_map(corpus, content_transformer(tolower))

> d<-tm_map(d, stripWhitespace)

> d<-tm_map(d, removePunctuation)

> d<-tm_map(d, removeWords, sw)

> d<-tm_map(d, removeWords, stopwords("spanish"))

> d<-tm_map(d, removeNumbers)

> tdm1<-TermDocumentMatrix(d)

>m<-as.matrix(tdm1)

>v<- sort(rowSums(m), decreasing=TRUE)

>df<-data.frame(word = names(v), freq=v)

> png(file="Ejemplo2005.png",height=600,width=1200)

> wordcloud(df$word,df$freq,min.freq=20)

> dev.off()



######### 2do documento #########



> informe2<-readLines("./DIRECTORIO/Informes/2013/2013_21SeguridadCiudadana.txt", encoding="UTF-8")

>informe1<-iconv(enc2utf-8(informe1), sub = “byte”)

>corpus<-Corpus(VectorSource(informe1))

> d2<-tm_map(corpus2, content_transformer(tolower))

> d2<-tm_map(d2, stripWhitespace)

> d2<-tm_map(d2, removePunctuation)

> d2<-tm_map(d2, removeWords, sw)

> d2<-tm_map(d2, removeWords, stopwords("spanish"))

> d2<-tm_map(d, removeNumbers)

> tdm2<-TermDocumentMatrix(d2)

>m2<-as.matrix(tdm2)

>v<- sort(rowSums(m2), decreasing=TRUE)

>df2<-data.frame(word = names(v), freq=v)

> png(file="Ejemplo2013.png",height=600,width=1200)

> wordcloud(df2$word,df2$freq,min.freq=20)

> dev.off()

#################################


En este punto, hechas las dos wordclouds individuales (empezaré a
trabajar los ficheros de texto plano para el resto de los años,
entonces tengo dos interrogantes:

*** La primera: de acuerdo con el comentario de Carlos O. esta es la
base para el próximo paso, que es generar un bucle con todas las
wordclouds realizadas. ¿Se realiza con lapply?

*** La segunda: es una pregunta que me surge porque si cargo/copio/ el
fichero en R (convertirlo en objeto)
> informe1<-readLines("./DIRECTORIO/Informes/2005/2005_21SeguridadCiudadana.txt", encoding="UTF-8")
>informe1<-iconv(enc2utf-8(informe1), sub = “byte”)
> informe2<-readLines("./DIRECTORIO/Informes/2013/2013_21SeguridadCiudadana.txt", encoding="UTF-8")
>informe2<-iconv(enc2utf-8(informe2), sub = “byte”)

Y luego trato de seguir la misma lógica que cuando copié ayer todo el
documento en la ventana de script de Rgui y lo corrí (sólo que no está
todo el texto entre "", sino los dos objetos cargados en texto plano
en la memoria de R):

>tmpinformes<-data.frame(c(informe1, informe2), row.names=c("2005", "2013"))

El resultado es:

>Error in data.frame(c(informe1, informe2), row.names = c("2005", "2013")) :
  row names supplied are of the wrong length
Lap regunta que me hago, es ¿por qué sólo funciona con todo el texto
copiado, y no con los objetos creados, con los cuales se hicieron las
wordclouds de forma individual?

Nuevamente agradecido por lo que me puedan orientar/ilustrar para
poder hacer el bucle con los períodos que quiero considerar para el
análisis.





El día 30 de julio de 2014, 3:34, Carlos Ortega
<cof en qualityexcellence.es> escribió:
> Hola,
>
> Bueno, pues parece que finalmente te salió...
> Si ahora lo que quieres es trabajar sobre 10 informes/ficheros diferentes
> pero de forma individual, pues casi es más fácil que lo anterior.
>
> Prueba a hacerlo con uno sólo y luego extiendes la idea (con un simple
> bucle) para el resto.
>
> La diferencia fundamental frente a lo que has hecho en esta ocasión es que
> en vez de copiar/pegar el fichero en la consola tendrás que leer el fichero
> desde R.
>
> Prueba entonces con estos dos textos que has comparado ya. Graba cada uno en
> un fichero y prueba a leer el primero, a limpiarle de caracteres extraños,
> tenerle en el encoding adecuado y hacer un wordcloud. En cuanto lo consigas,
> vemos lo del bucle para procesar el primero y el segundo fichero de forma
> secuencial. Incluso podrás si quieres poner todos los worclouds juntos en
> una imagen en vez de generarles de forma individual.
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>
> El 30 de julio de 2014, 1:13, Alfredo David Alvarado Ríos
> <david.alvarado.r en gmail.com> escribió:
>
>> Buenas tardes grupo. Saludos cordiales Carlos J., muchas gracias por
>> tu orientación. Efectivamente, me había dado cuenta que la razón por
>> la que no se aplicaba colnames era porque no tenía columnas.  La
>> cuestión es que no logro visualizar completamente/claramente en qué
>> parte del proceso de creación del corpus se puede hacer.
>> Sin embargo, siguiendo el ejemplo de
>> http://biostat.jhsph.edu/~jleek/code/sotu2011-2012comparison.R
>> (proporcionado por Carlos O.), y las orientaciones que me han brindado
>> he podido seguir avanzando en el proceso de crear wordclouds para dos
>> informes de 2 años diferentes.
>>
>> Versión R: 3.1.1
>> require(tm)
>> require(wordcloud)
>> require(Rcpp)
>>
>>
>> tmpinformes<-data.frame(c("todo el informe 2005", "todo el informe
>> 2013"), row.names=c("2005", "2013"))
>> ds<- DataframeSource(tmpText)
>> ds<- DataframeSource(tmpinformes)
>> corp = Corpus(ds)
>> corp = tm_map(corp,removePunctuation)
>> corp = tm_map(corp,content_transformer(tolower))
>> corp = tm_map(corp,removeNumbers)
>> corp = tm_map(corp, stripWhitespace)
>> corp = tm_map(corp, removeWords, sw)
>> corp = tm_map(corp, removeWords, stopwords("spanish"))
>> term.matrix<- TermDocumentMatrix(corp)
>> term.matrix<- as.matrix(term.matrix)
>> colnames(term.matrix) <- c("Año2005","Año2013")
>> png(file="Org2005vs2013.png",height=600,width=1200)
>> par(mfrow=c(1,2))
>>
>> comparison.cloud(term.matrix,max.words=300,random.order=FALSE,colors=c("#1F497D","#C0504D"),main="Differences
>> Between Org 2005/2013")
>> commonality.cloud(term.matrix,random.order=FALSE,color="#F79646")
>> dev.off()
>>
>> "todo el informe 2005" y "todo el informe 2013" es todo el informe
>> copiado en la ventana "script" de Rgui.Son dos informes que tengo el
>> directorio por defecto. También tuve que trabajar el texto plano de
>> manera que no tuviera ninguna comilla para poder hacer
>> c("informe2005", "informe2013") de manera que la combinación estuviera
>> bien delimitada en los dos documentos que empiezan y terminan con ".
>>
>> El .png que se creó en el directorio por defecto de R contiene tal
>> como el del ejemplo de la página web citada más arriba, una nube
>> comparativa de los dos años diferenciada por colores, y una al lado en
>> la cual aparecen las coincidencias.
>>
>> Ahora bien, la pregunta que tengo es si es posible realizar el
>> procedimiento con muchos más años, en el ejercicio que me propongo 10
>> años en un solo corpus que puedan tenerse en 10 wordclouds para
>> realizar la comparación. Me gustaría que fuera una ventana por
>> wordcloud, y no una sola con varios años.
>> Gracias nuevamente a todos.
>>
>>
>>
>>
>>
>> El día 29 de julio de 2014, 13:19, Carlos J. Gil Bellosta
>> <cgb en datanalytics.com> escribió:
>> > Hola, ¿qué tal?
>> >
>> > Tu problema es que m es una matriz que no tiene dos columnas. El error
>> > se puede replicar así:
>> >
>> >> a <- matrix(0, 3, 3)
>> >> colnames(a) <- c("a", "b")
>> > Error in `colnames<-`(`*tmp*`, value = c("a", "b")) :
>> >   length of 'dimnames' [2] not equal to array extent
>> >
>> > ncol(m) te dirá cuántas columnas tiene m.
>> >
>> > Un saludo,
>> >
>> > Carlos J. Gil Bellosta
>> > http://www.datanalytics.com
>> >
>> > El día 29 de julio de 2014, 19:35, Alfredo David Alvarado Ríos
>> > <david.alvarado.r en gmail.com> escribió:
>> >> Buenas tardes grupo.
>> >> Carlos, siguiendo tu sugerencia hice dos cosas: releí el ejemplo de la
>> >> referencia que coloqué en el correo anterior; y leí un poco más acerca
>> >> de tm.
>> >> También seguí el ejemplo que yo mismo coloqué de referencia, y acá más
>> >> abajo reproduzco el código:
>> >> Versión de R: 3.1.1
>> >>
>> >>
>> >> ####
>> >> require(tm)
>> >> require(wordcloud)
>> >> require(Rcpp)
>> >> require(slam)
>> >>>
>> >>> info.05<-readLines("./PLANIFICACION/Informes/2005/05_seguridad_ciudadana.txt",
>> >>> encoding="UTF-8")
>> >>>
>> >>> info.13<-readLines("./PLANIFICACION/Informes/2013/2013_21SeguridadCiudadana.txt",
>> >>> encoding="UTF-8")
>> >>> info.05<-iconv(enc2utf8(info.05), sub="byte")
>> >>> info.13<-iconv(enc2utf8(info.13), sub="byte")
>> >>> informes<-c(info.05, info.13)
>> >>> corpus<-Corpus(VectorSource(informes))
>> >>> inspect(corpus[1:2])
>> >> <<VCorpus (documents: 2, metadata (corpus/indexed): 0/0)>>
>> >>
>> >> [[1]]
>> >> <<PlainTextDocument (metadata: 7)>>
>> >> Derecho a la seguridad ciudadana. Toda persona tiene derecho a la
>> >> protección del Estado a través de los órganos de seguridad ciudadana
>> >> regulados por ley, frente a situaciones que constituyan amenazas,
>> >> vulnerabilidad o riesgo para la integridad física de las personas, sus
>> >> propiedades, el disfrute de sus derechos y el cumplimiento de sus
>> >> deberes. La participación de los ciudadanos y las ciudadanas en los
>> >> programas destinados a la prevención, seguridad ciudadana y
>> >> administración de emergencias será regulada por una ley especial. Los
>> >> cuerpos de seguridad del Estado respetarán la dignidad y los derechos
>> >> humanos de las personas. El uso de armas o sustancias tóxicas por
>> >> parte del funcionariado policial y de seguridad estará limitado por
>> >> principios de necesidad, oportunidad, proporcionalidad, conforme a la
>> >> ley.
>> >>
>> >> [[2]]
>> >> <<PlainTextDocument (metadata: 7)>>
>> >> La situación del derecho a la seguridad ciudadana en el período que
>> >> cubre este Informe, presentó cambios en algunas cifras (descensos en
>> >> homicidios y robos); sin embargo, la situación desde el punto de vista
>> >> estructural permanece igual, ya que no existe política pública de
>> >> seguridad ciudadana democrática, con participación real de las
>> >> comunidades, sino que se insiste en propuestas
>> >>
>> >>> d<-tm_map(corpus, content_transformer(tolower))
>> >>> d<-tm_map(d, removePunctuation)
>> >>> d<-tm_map(d, stripWhitespace)
>> >>> d<-tm_map(d, removeWords, sw)
>> >>> d<-tm_map(d, removeWords, stopwords("spanish"))
>> >>> tdm<-TermDocumentMatrix(d)
>> >>> colnames(m) = c("2005","2013")
>> >> Error in `colnames<-`(`*tmp*`, value = c("2005", "2013")) : length of
>> >> 'dimnames' [2] not equal to array extent
>> >> #####
>> >>
>> >> Y una vez más vuelvo a tener el error en colnames. El resto de los
>> >> pasos, incluso el wordcloud lo llego a hacer, pero no logro llegar a
>> >> establecer que las columnas de la matrix serán los años, y la
>> >> intención que tengo es poder comparar los textos, incluso con gráfico
>> >> de barras por palabras más frecuentes.
>> >>
>> >>
>> >>
>> >>
>> >> El día 28 de julio de 2014, 15:28, Carlos Ortega
>> >> <cof en qualityexcellence.es> escribió:
>> >>> Hola,
>> >>>
>> >>> La referencia (gracias por proporcionarla) que has incluido es
>> >>> bastante
>> >>> clara y se puede seguir.
>> >>> ¿Has podido sobre tus dos discursos utilizar la misma lógica?
>> >>>
>> >>> La forma de salir de dudas, para empezar, es que adjuntaras el código
>> >>> que
>> >>> estás empleando por ver si hay algún error evidente. Aunque la forma
>> >>> adecuada para que te podamos ayudar es con un ejemplo reproducible:
>> >>> código +
>> >>> datos.
>> >>>
>> >>> Saludos,
>> >>> Carlos Ortega
>> >>> www.qualityexcellence.es
>> >>>
>> >>>
>> >>> El 28 de julio de 2014, 21:24, Alfredo David Alvarado Ríos
>> >>> <david.alvarado.r en gmail.com> escribió:
>> >>>>
>> >>>> Buenas tardes, grupo. Agradecido Carlos por tu orientación y Eduardo.
>> >>>> Efectivamente, seguí el ejemplo de wordclouds, y al igual que
>> >>>> anteriormente logró hacer la nube de texto, pero sólo por cada uno de
>> >>>> los textos considerados.
>> >>>> Tengo los dos "corpus clean" por cada uno de los informes que estoy
>> >>>> considerando: año 2005 y 2013.
>> >>>>
>> >>>> >tdm05<-TermDocumentMatrix(cor.05.cl)
>> >>>> >tdm13<-TermDocumentMatrix(cor.13.cl)
>> >>>> > m05<-as.matrix(tdm05)
>> >>>> > m13<-as.matrix(tdm13)
>> >>>>  >v05 <- sort(rowSums(m05),decreasing=TRUE)
>> >>>> > v13 <- sort(rowSums(m13),decreasing=TRUE)
>> >>>> > df05<-data.frame(word = names(v05), freq=v05)
>> >>>> > df13<-data.frame(word = names(v13), freq=v13)
>> >>>> > wordcloud(df05$word,df05$freq)
>> >>>> There were 50 or more warnings (use warnings() to see the first 50)
>> >>>> > head(df05)
>> >>>>                      word freq
>> >>>> seguridad       seguridad   56
>> >>>> ciudadana       ciudadana   40
>> >>>> funcionarios funcionarios   33
>> >>>> policiales     policiales   32
>> >>>> nacional         nacional   28
>> >>>> policial         policial   28
>> >>>>
>> >>>> > wordcloud(df13$word,df13$freq)
>> >>>> There were 34 warnings (use warnings() to see them)
>> >>>>
>> >>>> > head(df13)
>> >>>>                    word freq
>> >>>> seguridad     seguridad   33
>> >>>> homicidios   homicidios   29
>> >>>> año                 año   27
>> >>>> país               país   21
>> >>>> inseguridad inseguridad   20
>> >>>> violencia     violencia   20
>> >>>>
>> >>>> Como ven, puedo seguir el procedimiento hasta obtener el wordcloud
>> >>>> por
>> >>>> cada uno de los informes, pero no logro encontrar la manera de unir
>> >>>> los dos documentos de manera que pueda mostrarlos comparativamente en
>> >>>> dos wordclouds.
>> >>>> En este sentido, he leído, y por lo que entiendo los dos documentos
>> >>>> se
>> >>>> unen en un solo corpus, que debería contener los dos documentos. Eso
>> >>>> lo hice, con los informes, y efectivamente podría representar una
>> >>>> sola
>> >>>> ventana con el wordcloud de ambos informes.
>> >>>> Sin embargo, cuando trato de aplicar colnames, el mensaje de error
>> >>>> sigue siendo "length of 'dimnames' [2] not equal to array extent", es
>> >>>> decir, como si no pudiera aplicar las columnas porque se trata de un
>> >>>> solo documento.
>> >>>> Entonces, solicito una vez más su valiosa ayuda en lo relacionado con
>> >>>> lo siguiente:
>> >>>> Después de tener ambos data.frame (año 2005 y año 2013) es que se
>> >>>> deben unir los datos. Ahora bien, esto debe realizarse con la orden
>> >>>> Corpus? Como dije, lo trabajé uniéndolos en esa orden y me dio el
>> >>>> mensaje "dimnames [2] no equal to array extent en el paso de
>> >>>> aplicación de nombres de columnas.
>> >>>> Los uní antes, como en el siguiente ejemplo
>> >>>>
>> >>>>
>> >>>> http://www.webmining.cl/2014/05/text-mining-comparacion-de-2-discursos-presidenciales-del-21-de-mayo-usando-r/
>> >>>> y tampoco logré aplicarle colnames, ni tener la forma de matriz que
>> >>>> se
>> >>>> requiere para colocar los años en las columnas y las palabras
>> >>>> contadas
>> >>>> en las filas.
>> >>>> Realmente he estado estudiando la herramienta R, y leído varios
>> >>>> artículos y revisado materiales relacionados para buscar la manera,
>> >>>> pero no logro dar con la manera de visualizar.
>> >>>> Gracias nuevamente por la atención. Y gracias por la disposición.
>> >>>> Cordial y atentamente,
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> El día 25 de julio de 2014, 0:16, Alfredo David Alvarado Ríos
>> >>>> <david.alvarado.r en gmail.com> escribió:
>> >>>> > Buenas noches grupo. Saludos cordiales.
>> >>>> >
>> >>>> > He seguido en la búsqueda de una forma que me permita realizar la
>> >>>> > comparación de dos documentos pertenecientes a los años 2005 y
>> >>>> > 2013, y
>> >>>> > que pueda representar finalmente con wordcloud y con una table en
>> >>>> > la
>> >>>> > que las columnas sean los años de cada informe "2005" y "2013", y
>> >>>> > las
>> >>>> > filas sean las palabras con la frecuencia de cada una de ellas por
>> >>>> > cada informe:
>> >>>> >
>> >>>> >
>> >>>> > ----------------------------------
>> >>>> > |                |  2005 | 2013  |
>> >>>> > ----------------------------------
>> >>>> > | terminos |           |           |
>> >>>> > ----------------------------------
>> >>>> > | terminos |           |           |
>> >>>> > ----------------------------------
>> >>>> >
>> >>>> >
>> >>>> > De manera que buscando y experimentando, adaptando de otras
>> >>>> > experiencias logré llegar a lo siguiente:
>> >>>> >
>> >>>> > ##########
>> >>>> >
>> >>>> >>informes<-c("2013", "2005")
>> >>>> >>pathname<-"C:/Users/d_2/Documents/Comision/PLAN de
>> >>>> >> INSPECCIONES/Informes/"
>> >>>> >
>> >>>> >>TDM<-function(informes, pathname) {
>> >>>> >  info.dir<-sprintf("%s/%s", pathname, informes)
>> >>>> >  info.cor<-Corpus(DirSource(directory=info.dir, encoding="UTF-8"))
>> >>>> >  info.cor.cl<-tm_map(info.cor, content_transformer(tolower))
>> >>>> >  info.cor.cl<-tm_map(info.cor.cl, stripWhitespace)
>> >>>> >  info.cor.cl<-tm_map(info.cor.cl,removePunctuation)
>> >>>> >  sw<-readLines("C:/Users/d_2/Documents/StopWords.txt",
>> >>>> > encoding="UTF-8")
>> >>>> >  sw<-iconv(enc2utf8(sw), sub = "byte")
>> >>>> >  info.cor.cl<-tm_map(info.cor.cl, removeWords,
>> >>>> > stopwords("spanish"))
>> >>>> >  info.tdm<-TermDocumentMatrix(info.cor.cl)
>> >>>> >  result<-list(name = informes, tdm= info.tdm)
>> >>>> >  }
>> >>>> >>tdm<-lapply(informes, TDM, path = pathname)
>> >>>> >
>> >>>> > Resultado:
>> >>>> >
>> >>>> >> tdm
>> >>>> > [[1]]
>> >>>> > [[1]]$name
>> >>>> > [1] "2013"
>> >>>> > [[1]]$tdm
>> >>>> > <<TermDocumentMatrix (terms: 1540, documents: 1)>>
>> >>>> > Non-/sparse entries: 1540/0
>> >>>> > Sparsity           : 0%
>> >>>> > Maximal term length: 18
>> >>>> > Weighting          : term frequency (tf)
>> >>>> >
>> >>>> > [[2]]
>> >>>> > [[2]]$name
>> >>>> > [1] "2005"
>> >>>> > [[2]]$tdm
>> >>>> > <<TermDocumentMatrix (terms: 1849, documents: 1)>>
>> >>>> > Non-/sparse entries: 1849/0
>> >>>> > Sparsity           : 0%
>> >>>> > Maximal term length: 19
>> >>>> > Weighting          : term frequency (tf)
>> >>>> >
>> >>>> >> str(tdm)
>> >>>> > List of 2
>> >>>> >  $ :List of 2
>> >>>> >   ..$ name:  "2013"
>> >>>> >   ..$ tdm :List of 6
>> >>>> >   .. ..$ i       : int [1:1540] 1 2 3 4 5 6 7 8 9 10 ...
>> >>>> >   .. ..$ j       : int [1:1540] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ v       : num [1:1540] 1 5 8 1 1 1 1 3 1 1 ...
>> >>>> >   .. ..$ nrow    : int 1540
>> >>>> >   .. ..$ ncol    : int 1
>> >>>> >   .. ..$ dimnames:List of 2
>> >>>> >   .. .. ..$ Terms:  [1:1540] "070812" "100" "100000" "117735" ...
>> >>>> >   .. .. ..$ Docs :  "2013_21SeguridadCiudadana.txt"
>> >>>> >   .. ..- attr(*, "class")=  [1:2] "TermDocumentMatrix"
>> >>>> > "simple_triplet_matrix"
>> >>>> >   .. ..- attr(*, "weighting")=  [1:2] "term frequency" "tf"
>> >>>> >  $ :List of 2
>> >>>> >   ..$ name:  "2005"
>> >>>> >   ..$ tdm :List of 6
>> >>>> >   .. ..$ i       : int [1:1849] 1 2 3 4 5 6 7 8 9 10 ...
>> >>>> >   .. ..$ j       : int [1:1849] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ v       : num [1:1849] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ nrow    : int 1849
>> >>>> >   .. ..$ ncol    : int 1
>> >>>> >   .. ..$ dimnames:List of 2
>> >>>> >   .. .. ..$ Terms:  [1:1849] "071004" "100000" "101005" "1022" ...
>> >>>> >   .. .. ..$ Docs :  "05_seguridad_ciudadana.txt"
>> >>>> >   .. ..- attr(*, "class")=  [1:2] "TermDocumentMatrix"
>> >>>> > "simple_triplet_matrix"
>> >>>> >   .. ..- attr(*, "weighting")=  [1:2] "term frequency" "tf"
>> >>>> >>
>> >>>> >>m<-as.matrix(tdm)
>> >>>> >
>> >>>> > ########
>> >>>> >
>> >>>> > Al probar str(tdm), se obtiene lo siguiente:
>> >>>> >
>> >>>> > List of 2
>> >>>> >  $ :List of 2
>> >>>> >   ..$ name: chr "2013"
>> >>>> >   ..$ tdm :List of 6
>> >>>> >   .. ..$ i       : int [1:1540] 1 2 3 4 5 6 7 8 9 10 ...
>> >>>> >   .. ..$ j       : int [1:1540] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ v       : num [1:1540] 1 5 8 1 1 1 1 3 1 1 ...
>> >>>> >   .. ..$ nrow    : int 1540
>> >>>> >   .. ..$ ncol    : int 1
>> >>>> >   .. ..$ dimnames:List of 2
>> >>>> >   .. .. ..$ Terms: chr [1:1540] "070812" "100" "100000" "117735"
>> >>>> > ...
>> >>>> >   .. .. ..$ Docs : chr "2013_21SeguridadCiudadana.txt"
>> >>>> >   .. ..- attr(*, "class")= chr [1:2] "TermDocumentMatrix"
>> >>>> > "simple_triplet_matrix"
>> >>>> >   .. ..- attr(*, "weighting")= chr [1:2] "term frequency" "tf"
>> >>>> >  $ :List of 2
>> >>>> >   ..$ name: chr "2005"
>> >>>> >   ..$ tdm :List of 6
>> >>>> >   .. ..$ i       : int [1:1849] 1 2 3 4 5 6 7 8 9 10 ...
>> >>>> >   .. ..$ j       : int [1:1849] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ v       : num [1:1849] 1 1 1 1 1 1 1 1 1 1 ...
>> >>>> >   .. ..$ nrow    : int 1849
>> >>>> >   .. ..$ ncol    : int 1
>> >>>> >   .. ..$ dimnames:List of 2
>> >>>> >   .. .. ..$ Terms: chr [1:1849] "071004" "100000" "101005" "1022"
>> >>>> > ...
>> >>>> >   .. .. ..$ Docs : chr "05_seguridad_ciudadana.txt"
>> >>>> >   .. ..- attr(*, "class")= chr [1:2] "TermDocumentMatrix"
>> >>>> > "simple_triplet_matrix"
>> >>>> >   .. ..- attr(*, "weighting")= chr [1:2] "term frequency" "tf"
>> >>>> >  - attr(*, "dim")= int [1:2] 2 1
>> >>>> >
>> >>>> >
>> >>>> >> m<-as.matrix(tdm)
>> >>>> >
>> >>>> >> m
>> >>>> >      [,1]
>> >>>> > [1,] List,2
>> >>>> > [2,] List,2
>> >>>> >
>> >>>> >
>> >>>> >  #######
>> >>>> >
>> >>>> >  Pero no logro poder avanzar en los pasos para tener la comparativa
>> >>>> > de
>> >>>> > palabras por años par avanzar en una visualización de wordcloud.
>> >>>> > Si alguien se le ocurre alguna idea, agradecería mucho la ayuda.
>> >>>>
>> >>>> _______________________________________________
>> >>>> R-help-es mailing list
>> >>>> R-help-es en r-project.org
>> >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Saludos,
>> >>> Carlos Ortega
>> >>> www.qualityexcellence.es
>> >>
>> >> _______________________________________________
>> >> R-help-es mailing list
>> >> R-help-es en r-project.org
>> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es



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