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]]

