Gracias Carlos, voy a probar tu propuesta. Me faltaría usar gsub o algo similar para eliminar lo que hay entre los dos meses y dejar solo los nombres de los meses. Saludos, Sebastián. El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> escribió:> ------------------------------ > > Message: 4 > Date: Thu, 21 Feb 2013 17:49:45 +0100 > From: Carlos Ortega <cof@qualityexcellence.es> > To: Sebastian Kruk <residuo.solow@gmail.com> > Cc: Lista R <r-help-es@r-project.org> > Subject: Re: [R-es] (sin asunto) > Message-ID: > < > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> > Content-Type: text/plain > > Hola, > > Una posible solución podría ser esta: > > - Modificar todos los meses para que o bien estuvieran en mayúscula o en > minúscula. Funciones tolower(), toupper() del paquete base. > - Generar todas las "combinaciones" posibles dos a dos de los meses del > año. Utilizar paquete "combinat", función "combn". Esta función también > está en el paquete "utils". > > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 21 de febrero de 2013 17:39, Sebastian Kruk > <residuo.solow@gmail.com>escribió: > > > Estimados usarios de R: > > > > Tengo una variable que representa el mes o los meses que se inicia un > curso > > de la cual quiero obtener algunas medidas de resumen. > > > > El problema es que por cada ocurrencia puede aparecer un mes o varios > pero > > como fue contestado directamente por los encuestados a veces ponen el > (los) > > mes(es) en mayúsculas, minúsculas, separados por una coma, un punto, un > > guión o un espacio, etc. > > > > Por ejemplo: > > > > FEBRERO Y AGOSTO > > julio octubre noviembre > > ENERO / FEBRERO > > mayo, diciembre > > > > Tendria que crear una nueva variable que tenga todas las combinaciones > > posibles de a dos meses y también por mes. > > > > ¿Se les ocurre alguna idea? > > > > Saludos, > > > > Sebastián. > > > > [[alternative HTML version deleted]] > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > > [[alternative HTML version deleted]] > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > Fin de Resumen de R-help-es, Vol 48, Envío 31 > ********************************************* >[[alternative HTML version deleted]]
Hola Sebastian, Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este código para limpiar lo que hay entre los meses.> val.dat <- readLines("out.txt", n=-1) > val.dat[1] "FEBRERO Y AGOSTO" "julio octubre noviembre" [3] "ENERO / FEBRERO" "mayo, diciembre"> > val.new <- gsub(" Y ", " " , val.dat) > val.new <- gsub("\\/" , " ", val.new) > val.new <- gsub("," , " ", val.new) > val.new[1] "FEBRERO AGOSTO" "julio octubre noviembre" [3] "ENERO FEBRERO" "mayo diciembre" Saludos, Carlos Ortega www.qualityexcellence.es El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com>escribió:> Gracias Carlos, voy a probar tu propuesta. > > Me faltaría usar gsub o algo similar para eliminar lo que hay entre los dos > meses y dejar solo los nombres de los meses. > > Saludos, > > Sebastián. > > El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> > escribió: > > > ------------------------------ > > > > Message: 4 > > Date: Thu, 21 Feb 2013 17:49:45 +0100 > > From: Carlos Ortega <cof@qualityexcellence.es> > > To: Sebastian Kruk <residuo.solow@gmail.com> > > Cc: Lista R <r-help-es@r-project.org> > > Subject: Re: [R-es] (sin asunto) > > Message-ID: > > < > > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> > > Content-Type: text/plain > > > > Hola, > > > > Una posible solución podría ser esta: > > > > - Modificar todos los meses para que o bien estuvieran en mayúscula o > en > > minúscula. Funciones tolower(), toupper() del paquete base. > > - Generar todas las "combinaciones" posibles dos a dos de los meses > del > > año. Utilizar paquete "combinat", función "combn". Esta función > también > > está en el paquete "utils". > > > > > > > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > > > El 21 de febrero de 2013 17:39, Sebastian Kruk > > <residuo.solow@gmail.com>escribió: > > > > > Estimados usarios de R: > > > > > > Tengo una variable que representa el mes o los meses que se inicia un > > curso > > > de la cual quiero obtener algunas medidas de resumen. > > > > > > El problema es que por cada ocurrencia puede aparecer un mes o varios > > pero > > > como fue contestado directamente por los encuestados a veces ponen el > > (los) > > > mes(es) en mayúsculas, minúsculas, separados por una coma, un punto, un > > > guión o un espacio, etc. > > > > > > Por ejemplo: > > > > > > FEBRERO Y AGOSTO > > > julio octubre noviembre > > > ENERO / FEBRERO > > > mayo, diciembre > > > > > > Tendria que crear una nueva variable que tenga todas las combinaciones > > > posibles de a dos meses y también por mes. > > > > > > ¿Se les ocurre alguna idea? > > > > > > Saludos, > > > > > > Sebastián. > > > > > > [[alternative HTML version deleted]] > > > > > > > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es@r-project.org > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > > > > -- > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > [[alternative HTML version deleted]] > > > > > > > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > Fin de Resumen de R-help-es, Vol 48, Envío 31 > > ********************************************* > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Muchas gracias, con esto ya esta hecha la parte mas complicada. Saludos, Sebastian. El 21 de febrero de 2013 20:17, Carlos Ortega <cof@qualityexcellence.es>escribió:> Hola Sebastian, > > Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este > código para limpiar lo que hay entre los meses. > > > val.dat <- readLines("out.txt", n=-1) > > val.dat > [1] "FEBRERO Y AGOSTO" "julio octubre noviembre" > [3] "ENERO / FEBRERO" "mayo, diciembre" > > > > val.new <- gsub(" Y ", " " , val.dat) > > val.new <- gsub("\\/" , " ", val.new) > > val.new <- gsub("," , " ", val.new) > > val.new > [1] "FEBRERO AGOSTO" "julio octubre noviembre" > [3] "ENERO FEBRERO" "mayo diciembre" > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com>escribió: > > Gracias Carlos, voy a probar tu propuesta. >> >> Me faltaría usar gsub o algo similar para eliminar lo que hay entre los >> dos >> meses y dejar solo los nombres de los meses. >> >> Saludos, >> >> Sebastián. >> >> El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> >> escribió: >> >> > ------------------------------ >> > >> > Message: 4 >> > Date: Thu, 21 Feb 2013 17:49:45 +0100 >> > From: Carlos Ortega <cof@qualityexcellence.es> >> > To: Sebastian Kruk <residuo.solow@gmail.com> >> > Cc: Lista R <r-help-es@r-project.org> >> > Subject: Re: [R-es] (sin asunto) >> > Message-ID: >> > < >> > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> >> > Content-Type: text/plain >> > >> > Hola, >> > >> > Una posible solución podría ser esta: >> > >> > - Modificar todos los meses para que o bien estuvieran en mayúscula >> o en >> > minúscula. Funciones tolower(), toupper() del paquete base. >> > - Generar todas las "combinaciones" posibles dos a dos de los meses >> del >> > año. Utilizar paquete "combinat", función "combn". Esta función >> también >> > está en el paquete "utils". >> > >> > >> > >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > >> > El 21 de febrero de 2013 17:39, Sebastian Kruk >> > <residuo.solow@gmail.com>escribió: >> > >> > > Estimados usarios de R: >> > > >> > > Tengo una variable que representa el mes o los meses que se inicia un >> > curso >> > > de la cual quiero obtener algunas medidas de resumen. >> > > >> > > El problema es que por cada ocurrencia puede aparecer un mes o varios >> > pero >> > > como fue contestado directamente por los encuestados a veces ponen el >> > (los) >> > > mes(es) en mayúsculas, minúsculas, separados por una coma, un punto, >> un >> > > guión o un espacio, etc. >> > > >> > > Por ejemplo: >> > > >> > > FEBRERO Y AGOSTO >> > > julio octubre noviembre >> > > ENERO / FEBRERO >> > > mayo, diciembre >> > > >> > > Tendria que crear una nueva variable que tenga todas las combinaciones >> > > posibles de a dos meses y también por mes. >> > > >> > > ¿Se les ocurre alguna idea? >> > > >> > > Saludos, >> > > >> > > Sebastián. >> > > >> > > [[alternative HTML version deleted]] >> > > >> > > >> > > _______________________________________________ >> > > R-help-es mailing list >> > > R-help-es@r-project.org >> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > >> > > >> > >> > >> > -- >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > [[alternative HTML version deleted]] >> > >> > >> > >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es@r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >> > >> > Fin de Resumen de R-help-es, Vol 48, Envío 31 >> > ********************************************* >> > >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]
Carlos, hay otro detalle más no menor. Encontré también que a veces no ponen ningun mes o sino los meses mas algun texto más. Por ejemplo "Durante los meses de enero y febrero principalmente". ¿Hay alguna forma de hacer que primero me genere una variable del mismo tamaño en que si no aparece un mes me deje el texto original y si aparece un mes o varios me deje solo los meses? Saludos, Sebastián. El 21 de febrero de 2013 19:17, Carlos Ortega <cof@qualityexcellence.es>escribió:> Hola Sebastian, > > Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este > código para limpiar lo que hay entre los meses. > > > val.dat <- readLines("out.txt", n=-1) > > val.dat > [1] "FEBRERO Y AGOSTO" "julio octubre noviembre" > [3] "ENERO / FEBRERO" "mayo, diciembre" > > > > val.new <- gsub(" Y ", " " , val.dat) > > val.new <- gsub("\\/" , " ", val.new) > > val.new <- gsub("," , " ", val.new) > > val.new > [1] "FEBRERO AGOSTO" "julio octubre noviembre" > [3] "ENERO FEBRERO" "mayo diciembre" > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com>escribió: > > Gracias Carlos, voy a probar tu propuesta. >> >> Me faltaría usar gsub o algo similar para eliminar lo que hay entre los >> dos >> meses y dejar solo los nombres de los meses. >> >> Saludos, >> >> Sebastián. >> >> El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> >> escribió: >> >> > ------------------------------ >> > >> > Message: 4 >> > Date: Thu, 21 Feb 2013 17:49:45 +0100 >> > From: Carlos Ortega <cof@qualityexcellence.es> >> > To: Sebastian Kruk <residuo.solow@gmail.com> >> > Cc: Lista R <r-help-es@r-project.org> >> > Subject: Re: [R-es] (sin asunto) >> > Message-ID: >> > < >> > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> >> > Content-Type: text/plain >> > >> > Hola, >> > >> > Una posible solución podría ser esta: >> > >> > - Modificar todos los meses para que o bien estuvieran en mayúscula >> o en >> > minúscula. Funciones tolower(), toupper() del paquete base. >> > - Generar todas las "combinaciones" posibles dos a dos de los meses >> del >> > año. Utilizar paquete "combinat", función "combn". Esta función >> también >> > está en el paquete "utils". >> > >> > >> > >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > >> > El 21 de febrero de 2013 17:39, Sebastian Kruk >> > <residuo.solow@gmail.com>escribió: >> > >> > > Estimados usarios de R: >> > > >> > > Tengo una variable que representa el mes o los meses que se inicia un >> > curso >> > > de la cual quiero obtener algunas medidas de resumen. >> > > >> > > El problema es que por cada ocurrencia puede aparecer un mes o varios >> > pero >> > > como fue contestado directamente por los encuestados a veces ponen el >> > (los) >> > > mes(es) en mayúsculas, minúsculas, separados por una coma, un punto, >> un >> > > guión o un espacio, etc. >> > > >> > > Por ejemplo: >> > > >> > > FEBRERO Y AGOSTO >> > > julio octubre noviembre >> > > ENERO / FEBRERO >> > > mayo, diciembre >> > > >> > > Tendria que crear una nueva variable que tenga todas las combinaciones >> > > posibles de a dos meses y también por mes. >> > > >> > > ¿Se les ocurre alguna idea? >> > > >> > > Saludos, >> > > >> > > Sebastián. >> > > >> > > [[alternative HTML version deleted]] >> > > >> > > >> > > _______________________________________________ >> > > R-help-es mailing list >> > > R-help-es@r-project.org >> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > >> > > >> > >> > >> > -- >> > Saludos, >> > Carlos Ortega >> > www.qualityexcellence.es >> > >> > [[alternative HTML version deleted]] >> > >> > >> > >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es@r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-es >> > >> > >> > Fin de Resumen de R-help-es, Vol 48, Envío 31 >> > ********************************************* >> > >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]
Hola Sebastián, Se puede pero manejando de nuevo expresiones regulares. Primero hay que detectar las cadenas (de cualquier mes) y si está/n presente/s procesarla. Para hacer esto, mejor pasar toda la cadena a minúscula o a mayúscula y buscar si está aunque sea el comienzo del mes: ene, feb,mar,abr,may,jun,jul,ago,sep,oct,nov.dic.. Si hay mes, hay que procesarla. Sobre cómo procesarla hay una manera sencillita (por evitar un poco las expresiones regulares) que es romper la cadena por los espacios y sobre la lista hacer un match con los meses. Te quedarías solamente con la parte donde haya match. Esta idea, seguro que tendrá sus pegas para hacerla compacta, o a lo mejor no... hay que probarlo. Con expresiones regulares, utilizaría una variante de una solución que creo que propuse justo en viernes pasado para otra cosa. Pero igualmente habría que probarla. Saludos, Carlos Ortega www.qualityexcellence.es El 1 de marzo de 2013 13:35, Sebastian Kruk <residuo.solow@gmail.com>escribió:> Carlos, hay otro detalle más no menor. Encontré también que a veces no > ponen ningun mes o sino los meses mas algun texto más. > > Por ejemplo "Durante los meses de enero y febrero principalmente". > > ¿Hay alguna forma de hacer que primero me genere una variable del mismo > tamaño en que si no aparece un mes me deje el texto original y si aparece > un mes o varios me deje solo los meses? > > Saludos, > > Sebastián. > > > El 21 de febrero de 2013 19:17, Carlos Ortega <cof@qualityexcellence.es>escribió: > > Hola Sebastian, >> >> Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este >> código para limpiar lo que hay entre los meses. >> >> > val.dat <- readLines("out.txt", n=-1) >> > val.dat >> [1] "FEBRERO Y AGOSTO" "julio octubre noviembre" >> [3] "ENERO / FEBRERO" "mayo, diciembre" >> > >> > val.new <- gsub(" Y ", " " , val.dat) >> > val.new <- gsub("\\/" , " ", val.new) >> > val.new <- gsub("," , " ", val.new) >> > val.new >> [1] "FEBRERO AGOSTO" "julio octubre noviembre" >> [3] "ENERO FEBRERO" "mayo diciembre" >> >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >> >> >> El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com>escribió: >> >> Gracias Carlos, voy a probar tu propuesta. >>> >>> Me faltaría usar gsub o algo similar para eliminar lo que hay entre los >>> dos >>> meses y dejar solo los nombres de los meses. >>> >>> Saludos, >>> >>> Sebastián. >>> >>> El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> >>> escribió: >>> >>> > ------------------------------ >>> > >>> > Message: 4 >>> > Date: Thu, 21 Feb 2013 17:49:45 +0100 >>> > From: Carlos Ortega <cof@qualityexcellence.es> >>> > To: Sebastian Kruk <residuo.solow@gmail.com> >>> > Cc: Lista R <r-help-es@r-project.org> >>> > Subject: Re: [R-es] (sin asunto) >>> > Message-ID: >>> > < >>> > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> >>> > Content-Type: text/plain >>> > >>> > Hola, >>> > >>> > Una posible solución podría ser esta: >>> > >>> > - Modificar todos los meses para que o bien estuvieran en mayúscula >>> o en >>> > minúscula. Funciones tolower(), toupper() del paquete base. >>> > - Generar todas las "combinaciones" posibles dos a dos de los meses >>> del >>> > año. Utilizar paquete "combinat", función "combn". Esta función >>> también >>> > está en el paquete "utils". >>> > >>> > >>> > >>> > Saludos, >>> > Carlos Ortega >>> > www.qualityexcellence.es >>> > >>> > >>> > El 21 de febrero de 2013 17:39, Sebastian Kruk >>> > <residuo.solow@gmail.com>escribió: >>> > >>> > > Estimados usarios de R: >>> > > >>> > > Tengo una variable que representa el mes o los meses que se inicia un >>> > curso >>> > > de la cual quiero obtener algunas medidas de resumen. >>> > > >>> > > El problema es que por cada ocurrencia puede aparecer un mes o varios >>> > pero >>> > > como fue contestado directamente por los encuestados a veces ponen el >>> > (los) >>> > > mes(es) en mayúsculas, minúsculas, separados por una coma, un punto, >>> un >>> > > guión o un espacio, etc. >>> > > >>> > > Por ejemplo: >>> > > >>> > > FEBRERO Y AGOSTO >>> > > julio octubre noviembre >>> > > ENERO / FEBRERO >>> > > mayo, diciembre >>> > > >>> > > Tendria que crear una nueva variable que tenga todas las >>> combinaciones >>> > > posibles de a dos meses y también por mes. >>> > > >>> > > ¿Se les ocurre alguna idea? >>> > > >>> > > Saludos, >>> > > >>> > > Sebastián. >>> > > >>> > > [[alternative HTML version deleted]] >>> > > >>> > > >>> > > _______________________________________________ >>> > > R-help-es mailing list >>> > > R-help-es@r-project.org >>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >>> > > >>> > > >>> > >>> > >>> > -- >>> > Saludos, >>> > Carlos Ortega >>> > www.qualityexcellence.es >>> > >>> > [[alternative HTML version deleted]] >>> > >>> > >>> > >>> > >>> > _______________________________________________ >>> > R-help-es mailing list >>> > R-help-es@r-project.org >>> > https://stat.ethz.ch/mailman/listinfo/r-help-es >>> > >>> > >>> > Fin de Resumen de R-help-es, Vol 48, Envío 31 >>> > ********************************************* >>> > >>> >>> [[alternative HTML version deleted]] >>> >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola Sebastián, Esta otra alternativa es mucho más fácil... #------------------------------------------------ library(stringr) cad.ena <- "Durante los meses de enero y febrero principalmente" cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces diciembre" val.uno <- str_extract_all(cad.ena, "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") val.cad <- str_c(unlist(val.uno), collapse=" ") val.cad val.dos <- str_extract_all(cad.ena2, "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") val.cad2 <- str_c(unlist(val.dos), collapse=" ") val.cad2 #------------------------------------------------ que produce estos resultados:> library(stringr) > > cad.ena <- "Durante los meses de enero y febrero principalmente" > cad.ena2 <- "Durante los meses de enero y febrero principalmente a vecesdiciembre"> > val.uno <- str_extract_all(cad.ena,"enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre")> val.cad <- str_c(unlist(val.uno), collapse=" ") > val.cad*[1] "enero febrero"*> > val.dos <- str_extract_all(cad.ena2,"enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre")> val.cad2 <- str_c(unlist(val.dos), collapse=" ") > val.cad2*[1] "enero febrero diciembre"* Saludos, Carlos Ortega www.qualityexcellence.es El 1 de marzo de 2013 14:15, Carlos Ortega <cof@qualityexcellence.es>escribió:> Hola Sebastián, > > Se puede pero manejando de nuevo expresiones regulares. > Primero hay que detectar las cadenas (de cualquier mes) y si está/n > presente/s procesarla. Para hacer esto, mejor pasar toda la cadena a > minúscula o a mayúscula y buscar si está aunque sea el comienzo del mes: > ene, feb,mar,abr,may,jun,jul,ago,sep,oct,nov.dic.. > > Si hay mes, hay que procesarla. > > Sobre cómo procesarla hay una manera sencillita (por evitar un poco las > expresiones regulares) que es romper la cadena por los espacios y sobre la > lista hacer un match con los meses. Te quedarías solamente con la parte > donde haya match. Esta idea, seguro que tendrá sus pegas para hacerla > compacta, o a lo mejor no... hay que probarlo. > > Con expresiones regulares, utilizaría una variante de una solución que > creo que propuse justo en viernes pasado para otra cosa. Pero igualmente > habría que probarla. > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 1 de marzo de 2013 13:35, Sebastian Kruk <residuo.solow@gmail.com>escribió: > > Carlos, hay otro detalle más no menor. Encontré también que a veces no >> ponen ningun mes o sino los meses mas algun texto más. >> >> Por ejemplo "Durante los meses de enero y febrero principalmente". >> >> ¿Hay alguna forma de hacer que primero me genere una variable del mismo >> tamaño en que si no aparece un mes me deje el texto original y si aparece >> un mes o varios me deje solo los meses? >> >> Saludos, >> >> Sebastián. >> >> >> El 21 de febrero de 2013 19:17, Carlos Ortega <cof@qualityexcellence.es>escribió: >> >> Hola Sebastian, >>> >>> Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este >>> código para limpiar lo que hay entre los meses. >>> >>> > val.dat <- readLines("out.txt", n=-1) >>> > val.dat >>> [1] "FEBRERO Y AGOSTO" "julio octubre noviembre" >>> [3] "ENERO / FEBRERO" "mayo, diciembre" >>> > >>> > val.new <- gsub(" Y ", " " , val.dat) >>> > val.new <- gsub("\\/" , " ", val.new) >>> > val.new <- gsub("," , " ", val.new) >>> > val.new >>> [1] "FEBRERO AGOSTO" "julio octubre noviembre" >>> [3] "ENERO FEBRERO" "mayo diciembre" >>> >>> >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >>> >>> >>> El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com>escribió: >>> >>> Gracias Carlos, voy a probar tu propuesta. >>>> >>>> Me faltaría usar gsub o algo similar para eliminar lo que hay entre los >>>> dos >>>> meses y dejar solo los nombres de los meses. >>>> >>>> Saludos, >>>> >>>> Sebastián. >>>> >>>> El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> >>>> escribió: >>>> >>>> > ------------------------------ >>>> > >>>> > Message: 4 >>>> > Date: Thu, 21 Feb 2013 17:49:45 +0100 >>>> > From: Carlos Ortega <cof@qualityexcellence.es> >>>> > To: Sebastian Kruk <residuo.solow@gmail.com> >>>> > Cc: Lista R <r-help-es@r-project.org> >>>> > Subject: Re: [R-es] (sin asunto) >>>> > Message-ID: >>>> > < >>>> > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> >>>> > Content-Type: text/plain >>>> > >>>> > Hola, >>>> > >>>> > Una posible solución podría ser esta: >>>> > >>>> > - Modificar todos los meses para que o bien estuvieran en >>>> mayúscula o en >>>> > minúscula. Funciones tolower(), toupper() del paquete base. >>>> > - Generar todas las "combinaciones" posibles dos a dos de los >>>> meses del >>>> > año. Utilizar paquete "combinat", función "combn". Esta función >>>> también >>>> > está en el paquete "utils". >>>> > >>>> > >>>> > >>>> > Saludos, >>>> > Carlos Ortega >>>> > www.qualityexcellence.es >>>> > >>>> > >>>> > El 21 de febrero de 2013 17:39, Sebastian Kruk >>>> > <residuo.solow@gmail.com>escribió: >>>> > >>>> > > Estimados usarios de R: >>>> > > >>>> > > Tengo una variable que representa el mes o los meses que se inicia >>>> un >>>> > curso >>>> > > de la cual quiero obtener algunas medidas de resumen. >>>> > > >>>> > > El problema es que por cada ocurrencia puede aparecer un mes o >>>> varios >>>> > pero >>>> > > como fue contestado directamente por los encuestados a veces ponen >>>> el >>>> > (los) >>>> > > mes(es) en mayúsculas, minúsculas, separados por una coma, un >>>> punto, un >>>> > > guión o un espacio, etc. >>>> > > >>>> > > Por ejemplo: >>>> > > >>>> > > FEBRERO Y AGOSTO >>>> > > julio octubre noviembre >>>> > > ENERO / FEBRERO >>>> > > mayo, diciembre >>>> > > >>>> > > Tendria que crear una nueva variable que tenga todas las >>>> combinaciones >>>> > > posibles de a dos meses y también por mes. >>>> > > >>>> > > ¿Se les ocurre alguna idea? >>>> > > >>>> > > Saludos, >>>> > > >>>> > > Sebastián. >>>> > > >>>> > > [[alternative HTML version deleted]] >>>> > > >>>> > > >>>> > > _______________________________________________ >>>> > > R-help-es mailing list >>>> > > R-help-es@r-project.org >>>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> > > >>>> > > >>>> > >>>> > >>>> > -- >>>> > Saludos, >>>> > Carlos Ortega >>>> > www.qualityexcellence.es >>>> > >>>> > [[alternative HTML version deleted]] >>>> > >>>> > >>>> > >>>> > >>>> > _______________________________________________ >>>> > R-help-es mailing list >>>> > R-help-es@r-project.org >>>> > https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> > >>>> > >>>> > Fin de Resumen de R-help-es, Vol 48, Envío 31 >>>> > ********************************************* >>>> > >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> R-help-es@r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>>> >>> >>> >>> -- >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Carlos, muchas gracias. Con esta libreria me salvas la vida. Saludos, Sebastián. El 1 de marzo de 2013 10:40, Carlos Ortega <cof@qualityexcellence.es>escribió:> Hola Sebastián, > > Esta otra alternativa es mucho más fácil... > > #------------------------------------------------ > library(stringr) > > cad.ena <- "Durante los meses de enero y febrero principalmente" > cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces > diciembre" > > val.uno <- str_extract_all(cad.ena, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") > val.cad <- str_c(unlist(val.uno), collapse=" ") > val.cad > > val.dos <- str_extract_all(cad.ena2, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") > val.cad2 <- str_c(unlist(val.dos), collapse=" ") > val.cad2 > > #------------------------------------------------ > > que produce estos resultados: > > > library(stringr) > > > > cad.ena <- "Durante los meses de enero y febrero principalmente" > > cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces > diciembre" > > > > val.uno <- str_extract_all(cad.ena, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") > > val.cad <- str_c(unlist(val.uno), collapse=" ") > > val.cad > *[1] "enero febrero"* > > > > val.dos <- str_extract_all(cad.ena2, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") > > val.cad2 <- str_c(unlist(val.dos), collapse=" ") > > val.cad2 > *[1] "enero febrero diciembre"* > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 1 de marzo de 2013 14:15, Carlos Ortega <cof@qualityexcellence.es>escribió: > > Hola Sebastián, >> >> Se puede pero manejando de nuevo expresiones regulares. >> Primero hay que detectar las cadenas (de cualquier mes) y si está/n >> presente/s procesarla. Para hacer esto, mejor pasar toda la cadena a >> minúscula o a mayúscula y buscar si está aunque sea el comienzo del mes: >> ene, feb,mar,abr,may,jun,jul,ago,sep,oct,nov.dic.. >> >> Si hay mes, hay que procesarla. >> >> Sobre cómo procesarla hay una manera sencillita (por evitar un poco las >> expresiones regulares) que es romper la cadena por los espacios y sobre la >> lista hacer un match con los meses. Te quedarías solamente con la parte >> donde haya match. Esta idea, seguro que tendrá sus pegas para hacerla >> compacta, o a lo mejor no... hay que probarlo. >> >> Con expresiones regulares, utilizaría una variante de una solución que >> creo que propuse justo en viernes pasado para otra cosa. Pero igualmente >> habría que probarla. >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >> >> El 1 de marzo de 2013 13:35, Sebastian Kruk <residuo.solow@gmail.com>escribió: >> >> Carlos, hay otro detalle más no menor. Encontré también que a veces no >>> ponen ningun mes o sino los meses mas algun texto más. >>> >>> Por ejemplo "Durante los meses de enero y febrero principalmente". >>> >>> ¿Hay alguna forma de hacer que primero me genere una variable del mismo >>> tamaño en que si no aparece un mes me deje el texto original y si aparece >>> un mes o varios me deje solo los meses? >>> >>> Saludos, >>> >>> Sebastián. >>> >>> >>> El 21 de febrero de 2013 19:17, Carlos Ortega <cof@qualityexcellence.es>escribió: >>> >>> Hola Sebastian, >>>> >>>> Grabé las líneas con los meses en un fichero (out.txt) y ejecuté este >>>> código para limpiar lo que hay entre los meses. >>>> >>>> > val.dat <- readLines("out.txt", n=-1) >>>> > val.dat >>>> [1] "FEBRERO Y AGOSTO" "julio octubre noviembre" >>>> [3] "ENERO / FEBRERO" "mayo, diciembre" >>>> > >>>> > val.new <- gsub(" Y ", " " , val.dat) >>>> > val.new <- gsub("\\/" , " ", val.new) >>>> > val.new <- gsub("," , " ", val.new) >>>> > val.new >>>> [1] "FEBRERO AGOSTO" "julio octubre noviembre" >>>> [3] "ENERO FEBRERO" "mayo diciembre" >>>> >>>> >>>> Saludos, >>>> Carlos Ortega >>>> www.qualityexcellence.es >>>> >>>> >>>> >>>> El 21 de febrero de 2013 20:58, Sebastian Kruk <residuo.solow@gmail.com >>>> > escribió: >>>> >>>> Gracias Carlos, voy a probar tu propuesta. >>>>> >>>>> Me faltaría usar gsub o algo similar para eliminar lo que hay entre >>>>> los dos >>>>> meses y dejar solo los nombres de los meses. >>>>> >>>>> Saludos, >>>>> >>>>> Sebastián. >>>>> >>>>> El 21 de febrero de 2013 14:22, <r-help-es-request@r-project.org> >>>>> escribió: >>>>> >>>>> > ------------------------------ >>>>> > >>>>> > Message: 4 >>>>> > Date: Thu, 21 Feb 2013 17:49:45 +0100 >>>>> > From: Carlos Ortega <cof@qualityexcellence.es> >>>>> > To: Sebastian Kruk <residuo.solow@gmail.com> >>>>> > Cc: Lista R <r-help-es@r-project.org> >>>>> > Subject: Re: [R-es] (sin asunto) >>>>> > Message-ID: >>>>> > < >>>>> > CAOKbq8h2wfieuHkLfu-owWAn_PTUw2XAsRKMUkjCDrVMx946oQ@mail.gmail.com> >>>>> > Content-Type: text/plain >>>>> > >>>>> > Hola, >>>>> > >>>>> > Una posible solución podría ser esta: >>>>> > >>>>> > - Modificar todos los meses para que o bien estuvieran en >>>>> mayúscula o en >>>>> > minúscula. Funciones tolower(), toupper() del paquete base. >>>>> > - Generar todas las "combinaciones" posibles dos a dos de los >>>>> meses del >>>>> > año. Utilizar paquete "combinat", función "combn". Esta función >>>>> también >>>>> > está en el paquete "utils". >>>>> > >>>>> > >>>>> > >>>>> > Saludos, >>>>> > Carlos Ortega >>>>> > www.qualityexcellence.es >>>>> > >>>>> > >>>>> > El 21 de febrero de 2013 17:39, Sebastian Kruk >>>>> > <residuo.solow@gmail.com>escribió: >>>>> > >>>>> > > Estimados usarios de R: >>>>> > > >>>>> > > Tengo una variable que representa el mes o los meses que se inicia >>>>> un >>>>> > curso >>>>> > > de la cual quiero obtener algunas medidas de resumen. >>>>> > > >>>>> > > El problema es que por cada ocurrencia puede aparecer un mes o >>>>> varios >>>>> > pero >>>>> > > como fue contestado directamente por los encuestados a veces ponen >>>>> el >>>>> > (los) >>>>> > > mes(es) en mayúsculas, minúsculas, separados por una coma, un >>>>> punto, un >>>>> > > guión o un espacio, etc. >>>>> > > >>>>> > > Por ejemplo: >>>>> > > >>>>> > > FEBRERO Y AGOSTO >>>>> > > julio octubre noviembre >>>>> > > ENERO / FEBRERO >>>>> > > mayo, diciembre >>>>> > > >>>>> > > Tendria que crear una nueva variable que tenga todas las >>>>> combinaciones >>>>> > > posibles de a dos meses y también por mes. >>>>> > > >>>>> > > ¿Se les ocurre alguna idea? >>>>> > > >>>>> > > Saludos, >>>>> > > >>>>> > > Sebastián. >>>>> > > >>>>> > > [[alternative HTML version deleted]] >>>>> > > >>>>> > > >>>>> > > _______________________________________________ >>>>> > > R-help-es mailing list >>>>> > > R-help-es@r-project.org >>>>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>> > > >>>>> > > >>>>> > >>>>> > >>>>> > -- >>>>> > Saludos, >>>>> > Carlos Ortega >>>>> > www.qualityexcellence.es >>>>> > >>>>> > [[alternative HTML version deleted]] >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > _______________________________________________ >>>>> > R-help-es mailing list >>>>> > R-help-es@r-project.org >>>>> > https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>> > >>>>> > >>>>> > Fin de Resumen de R-help-es, Vol 48, Envío 31 >>>>> > ********************************************* >>>>> > >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> >>>>> _______________________________________________ >>>>> R-help-es mailing list >>>>> R-help-es@r-project.org >>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>> >>>>> >>>> >>>> >>>> -- >>>> Saludos, >>>> Carlos Ortega >>>> www.qualityexcellence.es >>>> >>> >>> >> >> >> -- >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]
Estimado Carlos: Si quiero vectorizar el procedimiento anterior y lo hago de la siguiente manera:>cad.ena1 <- c("Durante los meses de enero y febrero principalmente","") >cad.ena2 <- c("Durante los meses de enero y febrero principalmente a vecesdiciembre","")>cad.ena3 <- c("febrero / enero","") >cad.ena <- rbind(cad.ena1, cad.ena2, cad.ena3) >val.uno <- str_extract_all(cad.ena,"enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre")>val.cad <- str_c(unlist(val.uno), collapse=" ") >val.cad[1] "enero febrero enero febrero diciembre febrero enero" De la forma siguiente no me sirve pues precisaria un vector que quede: [1] "enero febrero" [2] "enero febrero diciembre" [3] "enero febrero" Saludos, Sebastián El 1 de marzo de 2013 10:40, Carlos Ortega <cof@qualityexcellence.es>escribió:> > Hola Sebastián, >> >> Esta otra alternativa es mucho más fácil... >> >> #------------------------------------------------ >> library(stringr) >> >> cad.ena <- "Durante los meses de enero y febrero principalmente" >> cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces >> diciembre" >> >> val.uno <- str_extract_all(cad.ena, >> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >> val.cad <- str_c(unlist(val.uno), collapse=" ") >> val.cad >> >> val.dos <- str_extract_all(cad.ena2, >> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >> val.cad2 <- str_c(unlist(val.dos), collapse=" ") >> val.cad2 >> >> #------------------------------------------------ >> >> que produce estos resultados: >> >> > library(stringr) >> > >> > cad.ena <- "Durante los meses de enero y febrero principalmente" >> > cad.ena2 <- "Durante los meses de enero y febrero principalmente a >> veces diciembre" >> > >> > val.uno <- str_extract_all(cad.ena, >> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >> > val.cad <- str_c(unlist(val.uno), collapse=" ") >> > val.cad >> *[1] "enero febrero"* >> > >> > val.dos <- str_extract_all(cad.ena2, >> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >> > val.cad2 <- str_c(unlist(val.dos), collapse=" ") >> > val.cad2 >> *[1] "enero febrero diciembre"* >> >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2013-Mar-04 17:24 UTC
[R-es] Resumen de R-help-es, Vol 48, Envío 31
Hola, ¿qué tal? Casi seguro, no quieres realmente lo que pides. Es seguramente más probable que quieras crear 12 nuevas columnas en tu df que sean T/F según se mencione el mes o no. df$enero <- grepl("enero", df$cadena.texto.libre) etc. Ese formato es mucho más sencillo de procesar, tabular, etc. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 4 de marzo de 2013 18:09, Sebastian Kruk <residuo.solow en gmail.com> escribió:> Estimado Carlos: > > Si quiero vectorizar el procedimiento anterior y lo hago de la siguiente > manera: > >>cad.ena1 <- c("Durante los meses de enero y febrero principalmente","") >>cad.ena2 <- c("Durante los meses de enero y febrero principalmente a veces > diciembre","") >>cad.ena3 <- c("febrero / enero","") >>cad.ena <- rbind(cad.ena1, cad.ena2, cad.ena3) >>val.uno <- str_extract_all(cad.ena, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>val.cad <- str_c(unlist(val.uno), collapse=" ") >>val.cad > [1] "enero febrero enero febrero diciembre febrero enero" > > De la forma siguiente no me sirve pues precisaria un vector que quede: > [1] "enero febrero" > [2] "enero febrero diciembre" > [3] "enero febrero" > > Saludos, > > Sebastián > > > El 1 de marzo de 2013 10:40, Carlos Ortega <cof en qualityexcellence.es>escribió: >> >> Hola Sebastián, >>> >>> Esta otra alternativa es mucho más fácil... >>> >>> #------------------------------------------------ >>> library(stringr) >>> >>> cad.ena <- "Durante los meses de enero y febrero principalmente" >>> cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces >>> diciembre" >>> >>> val.uno <- str_extract_all(cad.ena, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> val.cad <- str_c(unlist(val.uno), collapse=" ") >>> val.cad >>> >>> val.dos <- str_extract_all(cad.ena2, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> val.cad2 <- str_c(unlist(val.dos), collapse=" ") >>> val.cad2 >>> >>> #------------------------------------------------ >>> >>> que produce estos resultados: >>> >>> > library(stringr) >>> > >>> > cad.ena <- "Durante los meses de enero y febrero principalmente" >>> > cad.ena2 <- "Durante los meses de enero y febrero principalmente a >>> veces diciembre" >>> > >>> > val.uno <- str_extract_all(cad.ena, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> > val.cad <- str_c(unlist(val.uno), collapse=" ") >>> > val.cad >>> *[1] "enero febrero"* >>> > >>> > val.dos <- str_extract_all(cad.ena2, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> > val.cad2 <- str_c(unlist(val.dos), collapse=" ") >>> > val.cad2 >>> *[1] "enero febrero diciembre"* >>> >>> >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >> > > [[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 >
Hola, Por otro lado, fíjate que lo que pides, al tener cada salida un número indeterminado de meses, esto es no es regular, la única forma de poder guardarlo (si es esto lo que quieres) es en formato lista. La salida de val.uno, ya es esa lista. Aunque hay elementos vacíos porque en cada una de las "cad.ena" has metido un elemento más vacío al final. Sobre val.uno también puedes acceder a cada uno de esos elementos así:> for (i in 1:(dim(cad.ena)[1]) ) {+ print(val.uno[[i]]) + } [1] "enero" "febrero" [1] "enero" "febrero" "diciembre" [1] "febrero" "enero" Saludos, Carlos Ortega www.qualityexcellence.es El 4 de marzo de 2013 18:09, Sebastian Kruk <residuo.solow@gmail.com>escribió:> Estimado Carlos: > > Si quiero vectorizar el procedimiento anterior y lo hago de la siguiente > manera: > > >cad.ena1 <- c("Durante los meses de enero y febrero principalmente","") > >cad.ena2 <- c("Durante los meses de enero y febrero principalmente a > veces diciembre","") > >cad.ena3 <- c("febrero / enero","") > >cad.ena <- rbind(cad.ena1, cad.ena2, cad.ena3) > >val.uno <- str_extract_all(cad.ena, > "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") > >val.cad <- str_c(unlist(val.uno), collapse=" ") > >val.cad > [1] "enero febrero enero febrero diciembre febrero enero" > > De la forma siguiente no me sirve pues precisaria un vector que quede: > [1] "enero febrero" > [2] "enero febrero diciembre" > [3] "enero febrero" > > Saludos, > > Sebastián > > > El 1 de marzo de 2013 10:40, Carlos Ortega <cof@qualityexcellence.es>escribió: >> >> Hola Sebastián, >>> >>> Esta otra alternativa es mucho más fácil... >>> >>> #------------------------------------------------ >>> library(stringr) >>> >>> cad.ena <- "Durante los meses de enero y febrero principalmente" >>> cad.ena2 <- "Durante los meses de enero y febrero principalmente a veces >>> diciembre" >>> >>> val.uno <- str_extract_all(cad.ena, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> val.cad <- str_c(unlist(val.uno), collapse=" ") >>> val.cad >>> >>> val.dos <- str_extract_all(cad.ena2, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> val.cad2 <- str_c(unlist(val.dos), collapse=" ") >>> val.cad2 >>> >>> #------------------------------------------------ >>> >>> que produce estos resultados: >>> >>> > library(stringr) >>> > >>> > cad.ena <- "Durante los meses de enero y febrero principalmente" >>> > cad.ena2 <- "Durante los meses de enero y febrero principalmente a >>> veces diciembre" >>> > >>> > val.uno <- str_extract_all(cad.ena, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> > val.cad <- str_c(unlist(val.uno), collapse=" ") >>> > val.cad >>> *[1] "enero febrero"* >>> > >>> > val.dos <- str_extract_all(cad.ena2, >>> "enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre") >>> > val.cad2 <- str_c(unlist(val.dos), collapse=" ") >>> > val.cad2 >>> *[1] "enero febrero diciembre"* >>> >>> >>> Saludos, >>> Carlos Ortega >>> www.qualityexcellence.es >>> >>-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]