R语言 把数据框架列转换为日期时间

R语言 把数据框架列转换为日期时间

字符串类型的日期对象并不提供简单的解析和操作组件。将日期对象转换为POSIXct或POSIXlt对象可以帮助轻松地将日期转换为所需的格式和理想的时区。在这篇文章中,我们将讨论如何在R编程语言中把数据框架列转换为字符串。

方法1:使用as.POSIXct()方法

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

1小时=1 * 60 * 60秒

1分钟=1*60秒

POSIXct中的 “ct “表示日历时间,它存储了从起点开始的秒数。它的输入是字符串日期对象和格式指定器。POSIXct以秒为单位存储日期和时间,秒数从1970年1月1日开始。

as.POSIXct( date, format)

代码

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4],
                        col2 = c(5:8) ,
                        col3 = 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")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- as.POSIXct(data_frame[['col3']],
                                   format = "%Y-%m-%d %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

输出

[1] "Original dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
col1
[1] "factor"col2
[1] "integer"

$col3
[1] "POSIXct" "POSIXt"

方法2:使用 strptime() 方法

R中的strptime方法用于直接将字符向量(各种格式)转换成POSIXlt格式。strptime比之前的方法更快,因为strptime只处理字符输入。

语法: strptime(date, format, tz = “”)

参数

  • date – 字符格式的日期
  • format – 输入日期的格式指定符
  • tz – 时区(可选)

代码

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4],
                        col2 = c(5:8) ,
                        col3 = 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")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- strptime(data_frame[['col3']],
                                 format = "%Y-%m-%d %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

输出

[1] "Original dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-05-05 01:04:34
2    b    6 2021-03-06 03:14:44
3    c    7 2021-03-11 07:22:48
4    d    8 2021-02-02 11:54:56
col1
[1] "factor"col2
[1] "integer"

$col3
[1] "POSIXlt" "POSIXt"

格式指定器表明解析字符日期对象的方式。它将数据时间对象转换为YYYY-MM-DD HH:MM:SS对象。

# declaring a data frame
data_frame = data.frame(col1 = letters[1:4], 
                        col2 = c(5:8) , 
                        col3 = c("15/12/2021 01:04:34",
                                 "06/10/2021 03:14:44",
                                 "11/04/2021 07:22:48",
                                 "28/01/1994 11:54:56"))
print ("Original dataframe")
print (data_frame)
sapply(data_frame, class)
  
# converting to datetime object
data_frame[['col3']] <- strptime(data_frame[['col3']],
                                 format = "%d/%m/%Y %H:%M:%S")
  
print ("Modified dataframe")
print (data_frame)
sapply(data_frame, class)

输出

[1] "Original dataframe"
 col1 col2                col3
1    a    5 15/12/2021 01:04:34
2    b    6 06/10/2021 03:14:44
3    c    7 11/04/2021 07:22:48
4    d    8 28/01/1994 11:54:56
    col1      col2      col3
"factor" "integer"  "factor"
[1] "Modified dataframe"
 col1 col2                col3
1    a    5 2021-12-15 01:04:34
2    b    6 2021-10-06 03:14:44
3    c    7 2021-04-11 07:22:48
4    d    8 1994-01-28 11:54:56
col1
[1] "factor"col2
[1] "integer"

$col3
[1] "POSIXlt" "POSIXt"

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程