有没有办法停止aggregate
将日期时间转换为计算机的本地时区?例如:
dtUTC <- as.POSIXct(c('2010-01-01 01:01:01', '2015-01-02 07:23:11',
'2016-06-02 05:23:41', '2018-01-08 17:57:43'), tz='UTC')
groups <- c(1,1,2,2)
result <- aggregate(dtUTC, by=list(groups), FUN=min)
结果将转换为我的计算机的本地时区。
> dtUTC
[1] "2010-01-01 01:01:01 UTC" "2015-01-02 07:23:11 UTC" "2016-06-02 05:23:41 UTC"
[4] "2018-01-08 17:57:43 UTC"
> result$x
[1] "2010-01-01 12:01:01 AEDT" "2016-06-02 15:23:41 AEST"
我可以事后将其转换回去,但这是一个令人讨厌的额外步骤。特别是如果我有多个datetime列。
attr(result$x, 'tzone') <- 'UTC'
> result$x
[1] "2010-01-01 01:01:01 UTC" "2016-06-02 05:23:41 UTC"
您可以使用dplyr
包进行汇总
library(lubridate)
library(dplyr)
dtUTC <- as.POSIXct(c('2010-01-01 01:01:01', '2015-01-02 07:23:11',
'2016-06-02 05:23:41', '2018-01-08 17:57:43'), tz='UTC')
groups <- c(1,1,2,2)
b<-data.frame(date= dtUTC, group = groups) %>% group_by(group) %>% dplyr::summarise(min = min(date))
b$min
> b$min
[1] "2010-01-01 01:01:01 UTC" "2016-06-02 05:23:41 UTC"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句