考虑POSIXct日期名单:如果我做范围POSIXct的名单日期
times <- list(as.POSIXct(c("2012-07-26 00:30", "2012-07-26 6:20",
"2012-07-26 10:40", "2012-07-26 15:50")),
as.POSIXct(c("2012-07-26 01:15", "2012-07-26 10:10",
"2012-07-26 15:15", "2012-07-26 18:50")),
as.POSIXct(c("2012-07-26 00:35", "2012-07-26 15:05",
"2012-07-26 19:36", "2012-07-26 22:32")),
as.POSIXct(c("2012-07-26 03:34", "2012-07-26 16:43",
"2012-07-26 21:44", "2012-07-26 23:45")))
:
range(times[[1]])
我正确地得到:
[1] "2012-07-26 00:30:00 CEST" "2012-07-26 15:50:00 CEST"
现在,如果我这样做:
range(times[c(1,3)])
不管出于什么原因[R决定转换POSIXct对象转换成时间戳,给我
[1] 1343255400 1343334720
然后我试着做他们再转换成POSIXct:
as.POSIXct(range(times[c(1,3)]), origin="1970-01-01 00:00")
而且,奇怪的是,我得到的范围1小时前的:
[1] "2012-07-25 23:30:00 CEST" "2012-07-26 21:32:00 CEST"
所以我必须做的:
as.POSIXct(range(times[c(1,3)]), origin="1970-01-01 01:00")
为了得到正确的范围:
[1] "2012-07-26 00:30:00 CEST" "2012-07-26 22:32:00 CEST"
我缺少的东西或者是有错误的地方?
快速查看'range.default'确认它首先在它的参数上调用'c(...,recursive = TRUE)'。 – joran 2012-07-26 14:19:49
谢谢,这很有道理 – nico 2012-07-26 14:32:16