Как извлечь месяц из даты в R (с примерами)


Есть два способа быстро извлечь месяц из даты в R:

Способ 1: использовать формат()

df$month <- format( as.Date (df$date, format=" %d/%m/%Y ")," %m ")

Способ 2: Используйте пакет со смазкой

library (lubridate)

df$month <- month( mdy (df$date))

В этом руководстве показан пример использования каждого из этих методов на практике.

Способ 1: извлечь месяц из даты с помощью format()

В следующем коде показано, как извлечь месяц из даты с помощью функции format() в сочетании с аргументом «%m» :

#create data frame
df <- data.frame(date=c("01/01/2021", "01/04/2021" , "01/09/2021"),
 sales=c(34, 36, 44))

#view data frame
df

 date sales
1 01/01/2021 34
2 01/04/2021 36
3 01/09/2021 44

#create new variable that contains month
df$month <- format( as.Date (df$date, format=" %d/%m/%Y ")," %m ")

#view updated data frame
df

 date sales month
1 01/01/2021 34 01
2 01/04/2021 36 04
3 01/09/2021 44 09

Обратите внимание, что эта функция format() работает с различными форматами даты. Вы просто должны указать формат:

#create data frame
df <- data.frame(date=c("2021-01-01", "2021-01-04" , "2021-01-09"),
 sales=c(34, 36, 44))

#view data frame
df

 date sales
1 2021-01-01 34
2 2021-01-04 36
3 2021-01-09 44

#create new variable that contains month
df$month<- format( as.Date (df$date, format=" %Y-%m-%d ")," %m ")

#view updated data frame
df

 date sales month
1 2021-01-01 34 01
2 2021-01-04 36 01
3 2021-01-09 44 01

Примечание.Вы также можете использовать %B для извлечения месяца в виде строкового имени (январь) вместо числового значения (01).

Метод 2: извлечь месяц из даты с помощью смазки

Мы также можем использовать функции из пакета lubridate, чтобы быстро извлечь месяц из даты:

library (lubridate)

#create data frame
df <- data.frame(date=c("01/01/2021", "01/04/2021" , "01/09/2021"),
 sales=c(34, 36, 44))

#view data frame
df

 date sales
1 01/01/2021 34
2 01/04/2021 36
3 01/09/2021 44

#create new variable that contains month
df$month<- month( mdy (df$date))

#view updated data frame
df

 date sales month
1 01/01/2021 34 1
2 01/04/2021 36 1
3 01/09/2021 44 1

Lubridate также работает с различными форматами даты. Вы просто должны указать формат:

#create data frame
df <- data.frame(date=c("2021-01-01", "2021-01-04" , "2021-01-09"),
 sales=c(34, 36, 44))

#view data frame
df

 date sales
1 2021-01-01 34
2 2021-01-04 36
3 2021-01-09 44

#create new variable that contains month
df$month <- month( ymd (df$date))

#view updated data frame
df

 date sales month
1 2021-01-01 34 1
2 2021-01-04 36 1
3 2021-01-09 44 1

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как извлечь год из даты в R
Как рассчитать количество месяцев между датами в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.