¿Cómo obtener un mes a partir de una fecha en las columnas R DataFrame?

En el tutorial de hoy, aprenderemos cómo crear una nueva columna de mes a partir de una columna de fecha existente en un marco de datos R.

Comenzaremos creando un objeto R DataFrame que usaremos en este tutorial. Siéntase libre de usar el código en RStudio u otro editor de R que pueda estar usando

#R    dates <- seq(as.Date('02/01/2023', format="%m/%d/%Y"), as.Date('02/06/2023' ,format="%m/%d/%Y"),by='days')  language <- c ('Javascript', 'R', 'Java', 'Python', 'Java', 'R')  candidates <- c (139, 81, 151, 171, 146, 151)    #Initialize DataFrame  my_df <- data.frame (interview_date = dates, language = language, candidates = candidates)

RStudio devolverá el siguiente resultado:

entrevista_fechaidiomacandidatos

1 2023-02-01 JavaScript 139
2 2023-02-02 R 81
3 2023-02-03 Java 151
4 2023-02-04 Pitón 171
5 2023-02-05 Java 146
6 2023-02-06 R 151

Extraiga el número de mes de la fecha y hora en R

Podemos usar el paquete R base y derivar rápidamente el número del mes a una nueva columna:

my_df€interview_month <- format(my_df€interview_date, '%m')

Obtenga el número de mes y el nombre con lubridate

Cuando sea posible, prefiero usar el paquete lubridate (así como dplyr para la manipulación de datos), que ofrece algunas funciones útiles para manejar la fecha y la hora:

Instalación de Lubridate

Ejecute el siguiente comando en RStudio para instalar lubridate en su entorno de desarrollo R

install.packages("lubridate")

Calcular el número de mes

Extraer el número del mes es fácil:

library(lubridate)  my_df€interview_month_lb <- month(my_df€interview_date)

Derivar el nombre del mes con lubridate

Lubridate tiene la función month.name que permite convertir el número del mes a su nombre:

library(lubridate)  my_df€interview_month_name <- month.name[month(my_df€interview_date)]

Concatenar mes y año

También podemos unir el mes y el año como se muestra a continuación.

library(lubridate)  my_df€month_number_year <- paste(month(my_df€interview_date),year(my_df€interview_date), sep = "-")

Para resumir todo, aquí está nuestro DataFrame:

print(my_df)

entrevista_fechaidiomacandidatosentrevista_mes_lbentrevista_mes_nombremes_número_año

1 2023-02-01 JavaScript 139 2 Febrero 2-2023
2 2023-02-02 R 81 2 Febrero 2-2023
3 2023-02-03 Java 151 2 Febrero 2-2023
4 2023-02-04 Pitón 171 2 Febrero 2-2023
5 2023-02-05 Java 146 2 Febrero 2-2023
6 2023-02-06 R 151 2 Febrero 2-2023