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


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

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

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

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

library (lubridate)

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

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

Метод 1: извлечь год из даты с помощью format()

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

#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 year
df$year <- format( as.Date (df$date, format=" %d/%m/%Y ")," %Y ")

#view new data frame
df

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

Обратите внимание, что эта функция 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 year
df$year <- format( as.Date (df$date, format=" %Y-%m-%d ")," %Y ")

#view new data frame
df

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

Метод 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 year
df$year <- year( mdy (df$date))

#view new data frame
df

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

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 year
df$year <- year( ymd (df$date))

#view new data frame
df

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

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

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

Как перебрать имена столбцов в R
Как удалить выбросы из нескольких столбцов в R