R语言 把日期-时间列分割成日期和时间变量

R语言 把日期-时间列分割成日期和时间变量

R编程语言提供了多种处理日期和日期/时间数据的方法。内置框架as.Date函数只负责处理日期,R中的库Chron同时处理日期和时间,但不支持时区;而POSIXct和POSIXlt类提供了对处理日期时间对象以及时区的支持。日期时间对象可以轻松转换为其他与日期相关的对象。

方法1:使用POSIXct对象

一个日期字符串可以首先被转换为POSIXct对象,然后可以很容易地对其进行基本算术。POSIXct对象简化了数学运算的过程,因为它们依赖于秒作为时间管理的主要单位。日期被转换为标准时区,即UTC。使用R语言中的as.POSIXct(date)方法,一个字符串类型的日期对象可以被转换为POSIXct对象。

语法

as.POSIXct ( date , format)

参数:

date – 字符串日期对象

format – 日期的格式指定器

日期对象被存储为从1970年1月1日开始计算的天数,其中负数被用来指代更早的日期。Date对象直接支持基本的算术,其中在整数中直接对Dates进行加减,n天数直接被加减,标准的日期格式作为输出返回。Date对象也可以指定不同的格式来包含日期。as.Date()方法将一个字符串日期对象作为输入,并将其转换为一个Date对象。

语法

as.Date(字符日期对象)

R中的 format() 方法用于将指定的日期时间对象按照所需的格式进行格式化。

语法

format (datetime , format = )

例子

# declaring a datetime vector
vec <- c("2021-05-08 08:32:07","2021-07-18 00:21:07",
         "2020-11-28 23:32:09","2021-05-11 18:32:07")
 
# creating datetime column in the dataframe
data_frame <- data.frame(datetime = as.POSIXct(
  vec, format = "%Y-%m-%d %H:%M:%S"))
 
print ("Original DataFrame")
print (data_frame)
 
# extracting time
data_frametime <- format(as.POSIXct(
  data_framedatetime),format = "%H:%M:%S")
 
# extracting date
data_framedate <- as.Date (data_framedatetime)
 
print ("Modified DataFrame")
print (data_frame)

输出

[1] "Original DataFrame"
datetime
1 
2021-05-08 08:32:07
2 
2021-07-18 00:21:07
3 
2020-11-28 23:32:09
4 
2021-05-11 18:32:07
[1] "Modified DataFrame"
             datetime     time       date
1 2021-05-08 08:32:07 08:32:07 2021-05-08
2 2021-07-18 00:21:07 00:21:07 2021-07-17
3 2020-11-28 23:32:09 23:32:09 2020-11-28
4 2021-05-11 18:32:07 18:32:07 2021-05-11

方法2:使用lubridate包

R编程语言中的Lubridate包是用来处理日期和时间对象的。它使解析和操作这些对象更加容易,并且需要安装和加载到工作空间。

R语言中的Sys.time()函数是用来根据IST区获取当前的日期和时间对象。 R语言中的hours()方法用于输入一个表示小时数的整数。lubridate “包的对象允许对其各个组成部分进行直接算术,因此小时数可以直接从 lubridate 时间对象中减去。一个结果也是属于这个类的对象。

Sys.Date() 函数用于返回系统的日期。

语法: Sys.Date()

参数:
不接受任何参数

R中的ymd_hms()方法用于将一个日期时间对象输入工作空间。

例子

library("lubridate")
 
# declaring a datetime vector
vec <- c("2021-05-08 08:32:07","2021-07-18 00:21:07",
         "2020-11-28 23:32:09","2021-05-11 18:32:07")
 
# creating datetime column in the dataframe
data_frame <- data.frame(datetime = ymd_hms(vec))
print ("Original DataFrame")
print (data_frame)
 
# extracting time
data_frametime <- format(as.POSIXct(
  data_framedatetime),format = "%H:%M:%S")
 
# extracting date
data_framedate <- as.Date (data_framedatetime)
print ("Modified DataFrame")
print (data_frame)

输出

[1] "Original DataFrame"
datetime
1 
2021-05-08 08:32:07
2 
2021-07-18 00:21:07
3 
2020-11-28 23:32:09
4 
2021-05-11 18:32:07
[1] "Modified DataFrame"
             datetime     time       date
1 2021-05-08 08:32:07 08:32:07 2021-05-08
2 2021-07-18 00:21:07 00:21:07 2021-07-17
3 2020-11-28 23:32:09 23:32:09 2020-11-28
4 2021-05-11 18:32:07 18:32:07 2021-05-11

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程