繁体   English   中英

如何在R中将日期和时间转换为数值

[英]How to convert date and time into a numeric value in R

我是R的新手,我有一个数据集,试图将日期和时间转换为数字值。 日期和时间的格式为01JUN17:00:00:00,位于名为pickle_datetime的变量下。 我尝试使用代码

cab_small_sample$pickup_datetime <- as.numeric(as.Date(cab_small_sample$pickup_datetime, format = '%d%b%y'))

但是这种方式不会占用时间,因此我尝试将时间格式添加到代码的格式部分,但仍然无法正常工作。 是否有R函数可以将数据转换为数字值?

R有两个主要的时间类别:“日期”和“ POSIXct”。 POSIXct是一个DateTime类,你可以得到所有的血淋淋的细节: ? DateTimeClasses ? DateTimeClasses 但是,数据输入时使用的格式的帮助页面位于?striptime

cab_small_sample <- data.frame(pickup_datetime = "01JUN17:00:00:00")
cab_small_sample$pickup_dt <- as.numeric(as.POSIXct(cab_small_sample$pickup_datetime,
                                                        format = '%d%b%y:%H:%M:%S'))
 cab_small_sample
#   pickup_datetime pickup_dt
#1 01JUN17:00:00:00   1496300400  # seconds since 1970-01-01

我发现“破坏性地重新分配值”通常不是一个好主意,因此,在确定我的代码可以正常工作之前,我不会将其分配给同一列(“最佳实践”)。 (而且我总是将未改动的副本放在安全的地方。)

lubridate是用于处理日期的非常方便的软件包。 只要您可以提供组件的顺序,它就包含各种功能,可以为您执行日期/时间解析。 在这种情况下,由于您的数据采用day-month-year- dmy_hms格式,因此可以使用dmy_hms函数。

library(lubridate)
cab_small_sample <- dplyr::tibble(
    pickup_datetime = c("01JUN17:00:00:00", "01JUN17:11:00:00"))
cab_small_sample$pickup_POSIX <- dmy_hms(cab_small_sample$pickup_datetime)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM