我有一些POSIXct格式的日期
head(data$Dates,3)
[1] "2015-01-02 16:34:01 GMT" "2015-01-28 16:33:03 GMT" "2015-01-16 20:55:35 GMT"
我想创建一个列为每个元素的DATE,时间为21:00:00 GMT,然后从原始日期中减去这个新日期。
所以从那个日期向量我想创建一个看起来像
的POSIXct向量 "2015-01-02 21:00:00 GMT" "2015-01-28 21:00:00 GMT" "2015-01-16 21:00:00 GMT"
然后我想从第一个中减去这个新的矢量。
如何创建如下的矢量:
"2015-01-02 21:00:00 GMT" "2015-01-28 21:00:00 GMT" "2015-01-16 21:00:00 GMT"
谢谢。
答案 0 :(得分:0)
我建议使用lubridate包。它将使您能够相互减去日期。您是否希望将时间设置为每个相同的时间作为日期减法的中间步骤?使用以下内容切片时间戳的第一部分来获取日期:
clean_date <- function(date){
date = substr(date, 1, 10)
return(date)
}
df$Date <- clean_date(df$Date)
然后使用
将其转换为lubridate日期对象df$Date <- ymd(date)
应该允许您轻松找到两个日期之间的差异,并将创建一个difftime对象,该对象将为您提供所选单位中两个日期之间的差异。
答案 1 :(得分:0)
目前还不完全清楚这是否是你要追求的结果类型,但这应该可以让你开始。
dates <- as.POSIXct(c("2015-01-02 16:34:01 GMT",
"2015-01-28 16:33:03 GMT",
"2015-01-16 20:55:35 GMT"))
library(lubridate)
orig_dates <- ymd_hms(dates)
trunc_dates <- floor_date(orig_dates, "day")
trunc_dates_21st_hour <- trunc_dates + ehours(21)
orig_dates - trunc_dates_21st_hour
# Time differences in mins
# [1] -265.983333 -266.950000 -4.416667