【发布时间】:2012-10-10 05:38:00
【问题描述】:
冒着因提出“明显”问题而被修改的极端风险,我如何在 R 中找到两个日期之间的时间差?
> ISOdate(2004,1,6) - ISOdate(2004,1,1)
Time difference of 5 days
> as.POSIXlt(ISOdate(2004,1,6) - ISOdate(2004,1,1))
Error in as.POSIXlt.default(ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)) :
do not know how to convert 'ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)' to class "POSIXlt"
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$year
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$year :
$ operator is invalid for atomic vectors
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$mon
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$mon :
$ operator is invalid for atomic vectors
【问题讨论】:
-
感谢您投反对票。解释如何执行此操作的文档可能很有用。我所看到的一切都指向strptime,它涉及字符串,并且字符串对日期的区域设置非常敏感。
-
?ISOdate告诉你阅读?DateTimeClasses,它告诉你“两个日期时间对象的减法等同于使用difftime。”在提出“明显”的问题之前,请阅读文档。