如何在 r 中从日期中提取年份(带有示例)
有两种方法可以从 R 中的日期中快速提取年份:
方法一:使用format()
df$year <- format( as.Date (df$date, format=" %d/%m/%Y ")," %Y ")
方法二:使用润滑包
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 dirty dates 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 dirty date 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 从日期中提取年份
我们还可以使用 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 dirty dates 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 dirty dates 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 中执行其他常见操作: