将POSIXlt对象与日期字符串进行比较是正确的吗?

时间:2014-09-08 19:34:09

标签: r date coercion posixlt

我最近遇到了将POSIXlt日期对象与日期字符串进行比较的R代码。

as.POSIXlt.date("2007-02-02") >= "2007-02-01"
[1] FALSE

令人惊讶的是,结果至少对我来说是假的。我期待POSIXlt对象被强制转换为字符向量,因此不等式应该测试为TRUE。然后我尝试了明确的强制,并强迫任何一方进入另一方的类型,产生了真实。

as.character(as.POSIXlt.date("2007-02-02")) >= "2007-02-01"
[1] TRUE

as.POSIXlt.date("2007-02-02") >= as.POSIXlt.date("2007-02-01")
[1] TRUE

我认为将LHS日期对象强制转换为字符向量在语义上是错误的,因为那时的比较将是词典,而不是预期的(尽管在这种情况下它的计算结果为TRUE)。我是对的吗?

在我看来,第三个表达是语义上正确的代码。但为什么第一个代码不起作用(评估为FALSE)?在比较它们之前,R不会将双方强制转换为字符向量吗?

这是我的平台信息:

R version 3.1.0 (2014-04-10) -- "Spring Dance"
Platform: x86_64-redhat-linux-gnu (64-bit)

我是R的新手。非常感谢任何帮助。

谢谢, 尔汉

0 个答案:

没有答案