使用哪个R时间/日期类和包?

18

我在R中有一定的时间序列使用经验。因此,我想知道哪种时间/日期类(及其相关软件包)最适合入门。

CRAN任务视图提供的众多软件包中,我目前更喜欢timeDate,它是S4导向的,并且对于位置相关的特殊情况(如节假日和夏令时)有很好的支持。

社区显然更喜欢zoo软件包。chron也很受欢迎。
[编辑:以下是lubridate软件包引用的时间/日期实现列表:POSIXct、POSIXlt、Date、chron、yearmon、yearqtr、zoo、zooreg、timeDate、xts、its、ti、jul、timeSeries、fts。此外,lubridate本身还有方便的时间类durationperiodinterval。]

如果有多个软件包的使用经验,请分享您对可用时间/日期类在可用性和可扩展性方面的比较意见,将不胜感激。

一些感兴趣的点(随机顺序):

  • 国际化(节假日、时区等)
  • 易于使用的统计建模过程
  • 易于使用的可视化工具
  • 易于使用
  • 与内置日期/时间序列类(POSIX、ts)兼容
  • 可扩展性(最好使用S4)
  • 最好与lubridate一起使用

谢谢。


4
注意,"zoo" 包是一个时间序列包,它本身并不是一个日期/时间包,而是与R和其他包中的日期/时间类一起使用,例如 POSIXct、chron、timeDate等。 - G. Grothendieck
@G.Grothendieck。我已经开始查看zoo的文档了。它还对其他软件包进行了简要比较。感谢您提供这个软件包 :) - VitoshKa
4个回答

14

使用POSIXct和lubridate库。


1
经过几天的尝试不同类型,我得出了相同的结论。感谢这个包。在lubridate中,我有些遗憾的是缺少将时间四舍五入、向下取整和向上取整到单位的能力。比如将所有时间都向下取整到每小时的第5分钟和第35分钟。 - VitoshKa
1
我发现我们在某个地方失去了那个功能 - 我已经在 https://github.com/hadley/lubridate/issues/issue/81 上开了一个 bug 报告。 - hadley

13

在原始发布者的请求下,我将此评论移动到stackoverflow的答案部分。

R News 4/1中有一篇文章(“R Help Desk”,第29页)专门比较了DatePOSIXctchron三种日期类型。(前两者是R核心功能,而chron是一个包。)

timeDate类(在timeDate包中)基于POSIXct,但具有额外的时区/金融中心支持。

对于定期间隔的时间序列,tis包支持许多日期概念。

mondate包支持会计日期。

zoo时间序列包支持几乎所有日期/时间类,并且还具有符合tsyearmonyearqtr

xts时间序列包在zoo之上工作,并通过将它们转换为POSIXct来处理最常见的日期/时间类。

还有关于时间序列的信息可在时间序列CRAN任务视图中找到。


5

2
谢谢Jean。这是一本很棒的书。它涵盖了zoo、xts和timeSeries包,但也有几个非常有用的章节介绍如何处理日期时间对象。 - VitoshKa
-1 这篇关于zoo/xts的描述是误导性和有偏见的,不建议使用。我建议您阅读5个zoo文献、1个xts文献和2个参考手册以获取准确信息。例如,电子书的第二个问题应该解释zoo/xts和timeSeries之间的区别,但它没有提到关键的区别,即zoo在处理任何满足某些最小属性的时间/日期索引类时是通用的,而timeSeries在内部硬编码使用特定的索引类。 - G. Grothendieck

1

你在这里搜索过旧问题吗?这个问题已经被讨论了很多次了--使用像

这样的搜索词。

 [r] zoo

在 R 标签内搜索,比如说 zoo

当然,这个问题也已经在 r-sig-finance 列表和其他地方被讨论得死去活来了。

就我个人而言,我认为 zoo 和 xts 是最好的选择。除非你真的非常需要,否则应该避免使用 S4。


2
我的问题是关于时间序列包的比较,而不是关于特定的[r] zoo包,我希望有经验的人能分享他对多个时间/日期包的了解。 - VitoshKa
1
这就是如何开始搜索 zoo,然后你可以搜索 timeDate 等等。有意义吗? - Dirk Eddelbuettel
2
我最好开始阅读zoo + timeDate + chron + xts + dozens或其他包的文档,而不是接受如何搜索的贬低性教学。如果你是这样一个搜索专家,为什么不直接指向相关的讨论,而不是花时间在这些评论上?在r.sig.finance上只有一篇帖子提到了zoo和timeDate。 - VitoshKa
2
你的策略提供了这个链接(http://r-project.markmail.org/search/?q=zoo+timeDate+)。每个月都会有数百个关于zoo包的问题被提出。 - VitoshKa
5
在《R News 4/1》杂志上有一篇文章,专门比较了Date、POSIXct和chron。前两者是R语言核心的一部分。timeDate类基于POSIXct,但具有额外的时区/金融中心支持。对于常规序列,tis包支持许多日期概念。mondate包支持会计日期。zoo几乎支持任何日期类,并且xts包可以在zoo的基础上使用,通过将它们转换为POSIXct并再次转换回来,处理最常见的日期/时间类。 - G. Grothendieck
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接