当以如下方式创建POSIXct向量时,底层类型变为double:
> times <- as.POSIXct(c("2015-09-18 09:01:05.984 CEST", "2015-09-18 10:01:10.984 CEST", "2015-09-18 10:21:20.584 CEST"))
> typeof(times)
[1] "double"
> values <- c(5,6,7)
将上述向量与以字符为基础类型初始化的 POSIXct 空向量相结合,得到一个字符 POSIXct 向量:
> tm1 <- c(.POSIXct(character(0)), times)
> typeof(tm1)
[1] "character"
...不能直接绘制:
> ggplot() + geom_line(aes(x=tm1, y=val), data=data.frame(tm1,val))
geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?
因此,我更喜欢使用双精度或整数作为基础类型来初始化我的空 POSIXct 向量:
> tm2 <- c(.POSIXct(double(0)), times)
> typeof(tm2)
[1] "double"
> ggplot() + geom_line(aes(x=tm2, y=val), data=data.frame(tm2,val))
> tm3 <- c(.POSIXct(integer(0)), times)
> typeof(tm3)
[1] "double"
> ggplot() + geom_line(aes(x=tm3, y=val), data=data.frame(tm3,val))
#Same thing...
当使用双精度时,向量也被初始化为有效日期(这可能会或可能不会更可取):
> .POSIXct(character(10))
[1] NA NA NA NA NA NA NA NA NA NA
> .POSIXct(double(10))
[1] "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET"
[7] "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET" "1970-01-01 01:00:00 CET"