[英]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.