R对日期向量的看法是什么?

时间:2013-09-16 17:24:24

标签: r date

这可能是一个愚蠢的问题,但我无法迅速找到答案而且我太好奇,即使迟到也不会放弃。

实质上,为什么1L:3Lletters都是向量

> is.vector(1:3)
[1] TRUE
> is.vector(letters)
[1] TRUE

和一系列日期不是?

x <- structure(1:3, class = "Date")
> is.vector(x)
[1] FALSE

来自?vector

The atomic modes are "logical", "integer", "numeric" (synonym "double"),
"complex", "character" and "raw".

很好,很清楚,即使x是原子的......

> is.atomic(x)
[1] TRUE

那么,是什么让日期矢量不被读作矢量? (以as.vector()的方式)以及这种差异背后的原因是什么?

这个问题来自尝试使用embed日期,因为日期失败导致它需要向量或数组。但从结构的角度来看,我看不出1L:10Lstructure(1L:10L, class="Date")

之间的区别

1 个答案:

答案 0 :(得分:3)

我的一些评论在答案中收集在一起:

所以,文档也说:

  如果x是指定模式的向量而没有名称以外的属性,则

is.vector返回TRUE。否则返回FALSE。

正如在this前面的回答中所讨论的那样,is.vector更像是检查一个向量是否具有名称以外的属性,这当然可能并不明显。

至于为什么embed表现得如此,我不确定。它可能会使用is.atomic,但您必须单独检查列表以实现相同的行为。我可能会忽略其他一些边缘情况。