R中的汇总日期和时间

时间:2017-10-31 03:14:29

标签: r date time time-series aggregate

我的数据有一个开始和结束时间戳,例如:

200401010000 200401010030
200401010030 200401010100
200401010100 200401010130 and so on...

我正在尝试使用lubridate和as.POSIXct将这些字段转换为%YYYY%MM%DD%HH%MM格式,但我只获得了NA。任何帮助将不胜感激。 我的目标是汇总每个月的数据。 我到目前为止使用的代码如下:

start_time = as.POSIXct(dat$TIMESTAMP_START, format = "%YYYY%MM%DD %HH%MM",origin = "2004-01-01 00:00", tz="EDT")
stop_time = as.POSIXct(dat$TIMESTAMP_END, format = "%YYYY%MM%DD%HH%MM",origin = "2004-01-01 00:30", tz="EDT")
dat$interval <- interval(start_time, stop_time)

1 个答案:

答案 0 :(得分:0)

我可以看到两个问题:

  1. 如果您已经使用lubridate,那么您应该使用功能ymd_hm(),这只是更清洁的IMO。

  2. 您不能将该函数应用于向量(我假设dat$TIMESTAMP_STARTdat$TIMESTAMP_END是);要做到这一点,你可以使用:

    start_time <- sapply(dat$TIMESTAMP_START, ymd_hm())
    end_time <- sapply(dat$TIMESTAMP_END, ymd_hm()) 
    

    这会将该函数应用于向量中的每个项目。