的空载体我想要的POSIXct
空载体,这样我可以在里面放了POSIXct
:如何使POSIXct
vec <- vector("POSIXct", 10)
vec
vec[1] <- "2014-10-27 18:11:36 PDT"
vec
这是行不通的。有任何想法吗?
的空载体我想要的POSIXct
空载体,这样我可以在里面放了POSIXct
:如何使POSIXct
vec <- vector("POSIXct", 10)
vec
vec[1] <- "2014-10-27 18:11:36 PDT"
vec
这是行不通的。有任何想法吗?
由于没有POSIX mode
,你不能初始化向量POSIXct
单独vector()
(见?mode
所有模式类型的列表)。
但是我们可以使用.POSIXct
来创建一个字符向量。
(x <- .POSIXct(character(10))) ## the same as .POSIXct(vector("character", 10))
# [1] NA NA NA NA NA NA NA NA NA NA
class(x)
# [1] "POSIXct" "POSIXt"
另外请注意,您还可以使用.POSIXct(integer(10))
的起源日期时间的长度10载体。
这是我从未尝试过的东西。有趣! +1 – jazzurro 2014-11-21 00:55:36
这很简洁,但它依赖于'.POSIXct'中的解析。更简单(可能更清晰)将是'.POSIXct(rep(NA,10))' – user295691 2015-10-07 19:33:55
分析贯穿性?不知道这意味着什么,'.POSIXct()'只是使用'structure()'。有很多方法。你也可以使用'.POSIXct(NA [1:10])' – 2015-10-07 19:35:46
当创建以下列方式一POSIXct矢量,底层类型变为双:
> 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空载体,在一个character-结果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"
我通常初始化的事情NA
:
as.POSIXct(rep(NA, 10))
在这种情况下效果很好。它明确地做了@ RichardScriven的答案中发生的一切 - 请参阅那里的评论以进行更长时间的讨论。
我是初始化为'NA','as.POSIXct(rep(NA,10))' – Gregor 2014-11-21 00:38:28
@Gregor的粉丝 - 你想发布一个答案吗?关于结果的数学运算,我有一些有效的担忧。 – 2015-10-07 20:02:22