R数据表推荐的处理日期时间的方法

标签 r datetime data.table

我有一个 csv 文件,其中包含一列时间戳“2000-01-01 12:00:00.123456”。在数据表中处理它的推荐方法是什么?我需要处理分组、匹配/滚动连接与另一个表中的 IDate 列、时间序列绘图等。

IDateTime("2000-01-01 12:00:00.123456")

Error in if (any(neg)) res[neg] = paste("-", res[neg], sep = "") :
missing value where TRUE/FALSE needed

我在可能的 duplicate 问题中看到了这个答案,其中马修建议将日期手动转换为整数。但那是 3 岁了,我想知道现在是否存在更好的方法?

最佳答案

IDateTime 需要一个 POSIXct 类对象才能正常工作(它似乎也可以通过 factor 转换正常工作,不知道为什么)。我同意它没有很好的记录,也许值得在 GH 上打开一个关于文档的 FR/PR——虽然有一个关于 IDateTime vignette 的开放队列。并且已经有一个 FR 允许它与 character 类一起工作。

IDateTime(as.POSIXct("2000-01-01 12:00:00.123456"))
#         idate    itime
# 1: 2000-01-01 12:00:00
## IDateTime(factor("2000-01-01 12:00:00.123456")) ## will also work

如果要避免意外行为,请注意 tz 中的 as.POSIXct 参数

无论如何,似乎错误实际上是由调用 ITimeformat.ITime 的打印方法引起的,请参阅 herehere
例如,如果您将运行 res <- IDateTime("2015-09-29 08:22:00") 这将不会产生错误,尽管 res 将是 NA 由于 here 中的错误转换(我相信)(格式仅为 "%H:%M:%OS" )。这对我来说似乎是一个错误,当 factor 中没有 factor 方法时,我仍然不确定为什么 methods(as.ITime) 类可以正常工作。可能是因为它的 integer 内部存储模式调用了另一个相关的方法。

关于R数据表推荐的处理日期时间的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33064015/

相关文章:

r - 循环中的多个绘图列表 (ggplot2) - 列表元素被覆盖

r - 在 R dygraphs 中更改图例的时间戳格式

.net - 日期的自然语言解析器(.NET)?

C# : How to convert string to DateTime, 其中字符串可以具有任何标准日期时间格式

r - 按名称向量过滤数据表中的列

r - 如何使用 R 中的 data.table 查找股票的月返回率?

r - 将函数参数传递给 mle() 以获得对数似然

r - 如何数据帧,如何计算条件值的行平均值

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

r - 在R中使用data.tables的凸包ggplot