【问题标题】:How to use zoo or xts with large data?如何使用 zoo 或 xts 处理大数据?
【发布时间】:2013-03-17 02:37:13
【问题描述】:

如何将 R 包 zoo 或 xts 用于非常大的数据集? (100GB) 我知道有一些包,例如 bigrf、ff、bigmemory 可以处理这个问题,但是你必须使用它们有限的命令集,它们没有 zoo 或 xts 的功能,我不知道如何制作zoo 或 xts 使用它们。 我该如何使用它?

我看到还有其他一些与数据库相关的东西,例如 sqldf 和 hadoopstreaming、RHadoop 或 Revolution R 使用的其他东西。您有什么建议?还有其他的吗?

我只想聚合系列、清理并执行一些协整和绘图。 我不希望每次都使用少量数据为我需要的每个命令编写代码和实现新功能。

补充:我在 Windows 上

【问题讨论】:

  • 这不是一个量化金融问题。我将其发送到 Stack Overflow。
  • @skan 你可以看看由 Jeff Ryan(xts 的作者)创建的 mmap
  • 但我在 Windows 上使用 R,而 nmap 在 Linux 上工作。那么你认为我不能将 ff、revoscaler 或 RHipe 等软件包与 zoo 一起使用或执行协整或小波分析?
  • mmap 包在 unix-alikes 上使用 mmap,在 Windows 上使用 MapViewOfFile。你不需要知道任何这些来使用这个包,这就是为什么我问你是否真的看过(即尝试过)这个包。有一个带有示例的小插曲,Jeff 有几个演示文稿在网上流传。

标签: r time-series xts zoo


【解决方案1】:

我也遇到过类似的问题(虽然我只玩了 9-10 GB)。我的经验是,R 无法单独处理这么多数据,尤其是因为您的数据集似乎包含时间序列数据。

如果您的数据集包含很多零,您可以使用稀疏矩阵来处理它 - 请参阅 Matrix 包 (http://cran.r-project.org/web/packages/Matrix/index.html);这本手册也可以派上用场 (http://www.johnmyleswhite.com/notebook/2011/10/31/using-sparse-matrices-in-r/)

我使用 PostgreSQL - 相关的 R 包是 RPostgreSQL (http://cran.r-project.org/web/packages/RPostgreSQL/index.html)。它允许您查询您的 PostgreSQL 数据库;它使用 SQL 语法。数据作为数据帧下载到 R 中。它可能很慢(取决于查询的复杂性),但它很健壮并且可以方便地进行数据聚合。

缺点:您需要先将数据上传到数据库中。您的原始数据需要干净并以某种可读格式(txt/csv)保存。如果您的数据尚未采用合理的格式,这可能是最大的问题。然而,将“行为良好”的数据上传到数据库中很容易(参见 http://www.postgresql.org/docs/8.2/static/sql-copy.htmlHow to import CSV file data into a PostgreSQL table?

我建议您使用 PostgreSQL 或任何其他关系数据库来完成您的任务。我没有尝试过 Hadoop,但使用 CouchDB 几乎让我走弯路。坚持使用良好的旧 SQL

【讨论】:

  • 谢谢。如果有人仍然感兴趣,还有其他一些方法:Revoscaler 可能是一种选择,尽管它需要添加更多功能。将 Hadoop 与 RHadoop 结合使用可能是一种选择,尽管 Hadoop Mapreduce 相当复杂。
  • 稀疏矩阵选项听起来不错,Skif,但仅适用于某些情况。如何在不将所有内容加载到内存的情况下使用数据库(例如 SQLite)并执行时间聚合?我需要使用 SQL 连接而不是 R 的函数吗?
  • 是的,使用 SQL 连接和其他 SQL 将是最佳选择。也许我让你感到困惑——你可以一次将 PostgreSQL 中的数据提取到 R 中。无需一次性将所有内容下载到 R 中。假设您有时间序列数据。您可以尝试的一件事是一次将数据加载到 R 中并以这种方式聚合。另一种方法是通过 SQL 查询进行所有聚合。我在工作的时候使用了第一个选项,但是第二个选项也应该可行
猜你喜欢
  • 2020-07-09
  • 2011-09-21
  • 2011-05-21
  • 2016-04-08
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多