es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo aislar el año de una cadena mmddyyyy sin ningún delimitador disponible?

¿Hay alguna forma de obtener la fecha de estas cadenas? Solo quiero aislar el año (por ejemplo, 2019, 2020, 2021)

Por ejemplo: USP03182019H13

Una respuesta compatible con tidyr sería ideal.

fecha <- c("USP_03182019_H13","DED_03212019_H1","EL_03202019_H8","EL_10082020_H6","DSP_05122021_H5")

#              fecha
#1 USP_03182019_H13
#2  DED_03212019_H1
#3   EL_03202019_H8
#4   EL_10082020_H6
#5  DSP_05122021_H5
Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de extraer el año de estas cadenas usando gsub en R. Una posible solución es:

    “`{r}
    library(tidyr)

    date <- c(“USP_03182019_H13″,”DED_03212019_H1″,”EL_03202019_H8″,”EL_10082020_H6″,”DSP_05122021_H5”)

    date <- gsub(“._([0-9]{4}).“, “\1”, date)
    year_only <- expand_grid(year = unique(date))


    Este código utiliza expresiones regulares para extraer el año de 4 dígitos de cada cadena utilizando `gsub`. El patrón `.*_([0-9]{4}).*` coincide con cualquier carácter antes y después del año de 4 dígitos, y captura el año en un grupo (`([0-9]{4})`). La cadena de reemplazo `\\1` reemplaza la cadena completa por el grupo capturado, que es el año. El vector resultante `date` contiene solo la información del año:

    [1] “2019” “2019” “2019” “2020” “2021”


    Finalmente, podemos utilizar `expand_grid` del paquete `tidyr` para crear un data frame con una sola columna `year`, que contiene solo los valores únicos de `date`. El data frame resultante `year_only` se ve así:

    A tibble: 3 x 1

    year

    1 2019
    2 2020
    3 2021
    “`

    Este data frame se puede utilizar para análisis adicionales, como combinarlo con otros data frames que contengan los mismos años.

Comments are closed.