📜  如何从R中的日期中提取年份

📅  最后修改于: 2022-05-13 01:55:05.043000             🧑  作者: Mango

如何从R中的日期中提取年份

在本文中,我们将了解如何在 R 编程语言中从日期中提取年份。

方法一:从向量中提取年份

在此方法中,as.POSIXct 是一个日期时间转换函数,用于操作类的对象。要从向量中提取年份,我们需要创建一个带有一些日期的向量,然后使用 as.POSIXct() 排列日期并使用 format() 方法获取年份。

R
Date <- c("01/12/2011 12:40:00", "11/12/2015 11:40:00",
          "01/02/2012 05:40:00", "01/04/2021 09:44:00" ,
          "01/02/2020 01:43:00", "01/12/2014 04:41:00")
 
print("Vector Date:")
print(Date)
 
# formatted date
print("Extract Year:")
Date <- as.POSIXct(Date, format = "%m/%d/%Y %H:%M:%S")
format(Date, format="%Y")


R
# declaring a data frame
data_frame = data.frame(Rank = c(5:8) ,
                        Time = c("2021-05-05 01:04:34",
                                 "2021-03-06 03:14:44",
                                 "2021-03-11 07:22:48",
                                 "2021-02-02 11:54:56"))
   
print ("Original dataframe")
data_frame
 
# data_frame$year <- as.Date(data_frame$Time, "%Y")
# data_frame
 
data_frame$Time <- as.Date(data_frame$Time)
 
print("Extract year")
# extract the year and convert to numeric format
data_frame$year <- as.numeric(format(data_frame$Time, "%Y"))
data_frame


输出:

[1] "Vector Date:"
[1] "01/12/2011 12:40:00" "11/12/2015 11:40:00" "01/02/2012 05:40:00"
[4] "01/04/2021 09:44:00" "01/02/2020 01:43:00" "01/12/2014 04:41:00"

[1] "Extract Year:"
'2011' '2015' '2012' '2021' '2020' '2014'

方法 2:从数据框中的列中提取年份

要从列中提取年份,我们将创建一个包含日期列的数据框,然后使用 format() 方法将年份与 DateTime 分开,并提取年份并转换为数字格式。

R

# declaring a data frame
data_frame = data.frame(Rank = c(5:8) ,
                        Time = c("2021-05-05 01:04:34",
                                 "2021-03-06 03:14:44",
                                 "2021-03-11 07:22:48",
                                 "2021-02-02 11:54:56"))
   
print ("Original dataframe")
data_frame
 
# data_frame$year <- as.Date(data_frame$Time, "%Y")
# data_frame
 
data_frame$Time <- as.Date(data_frame$Time)
 
print("Extract year")
# extract the year and convert to numeric format
data_frame$year <- as.numeric(format(data_frame$Time, "%Y"))
data_frame

输出:

[1] "Original dataframe"
Rank    Time
5    2021-05-05 01:04:34
6    2021-03-06 03:14:44
7    2021-03-11 07:22:48
8    2021-02-02 11:54:56

Extract year
Rank    Time    year
5    2021-05-05    2021
6    2021-03-06    2021
7    2021-03-11    2021
8    2021-02-02    2021