R的数据库建议

时间:2010-07-16 15:18:40

标签: database r

我正在使用R来运行使用时间序列数据的模拟。我一直在使用数组存储数据,但我需要一个内存较少的解决方案,用于在中间步骤存储数据,以便记录进程。我不是程序员所以我想在可能的情况下在多个平台上设置相对容易的东西(Windows,Mac,Linux)。我还需要能够直接从R调用数据库,因为现在学习另一种语言是不可行的。理想情况下,我希望能够以类似于数组的方式频繁地读取和写入数据库,但我不知道这是否真实。我很乐意牺牲速度以方便使用,但我愿意努力学习开源解决方案。任何建议将不胜感激。

4 个答案:

答案 0 :(得分:15)

快速评论:

  • R很擅长这个,作为用于数据编程的语言,有很多接口
  • 整个manual致力于数据导入/导出,它有一个section on relational databases,所以从那里开始。
  • R有广泛使用的DBI包,为许多后端提供统一的接口,其中包括SQLite,MySQL,PostgreSQL,Oracle,...使用它,可能用RSQLite来获取某些内容快点走之后你仍然可以切换后端。
  • 还有RODBC,但我觉得ODBC工作繁琐。
  • R还在Paul Gilbert的TSdbi包中有一个专门的变体,它将DBI相似的抽象带到了时间序列数据库。它还支持多个后端。
  • 为此编写了data.table包,并且在索引和聚合方面非常快。

答案 1 :(得分:3)

  

我还需要能够直接   从R

调用数据库

我建议使用RMySQL接口设置MySQL。

数据库连接打开后,您可以查询数据库并将数据输入R,例如:

# Run an SQL statement by creating first a resultSet object
rs <- dbSendQuery(con, statement = paste(
                      "SELECT w.laser_id, w.wavelength, p.cut_off",
                      "FROM WL w, PURGE P",
                      "WHERE w.laser_id = p.laser_id",
                      "SORT BY w.laser_id")
# we now fetch records from the resultSet into a data.frame
data <- fetch(rs, n = -1)   # extract all rows

RMySQL:与MySQL数据库的R接口

  

数据库接口和MySQL驱动程序   对于R.这个版本符合   数据库接口定义为   在DBI 0.2-2包中实现。

MySQL数据库:

适用于您在问题中引用的所有平台,等等,请下载here

答案 2 :(得分:1)

您真的需要一个适合您目的的数据库解决方案吗?您说您想要一个“在中间步骤存储数据的解决方案” - 如何在所需的时间点将数据阵列保存到磁盘?

编辑:为了能够检索信息,您可以嵌入元信息,例如文件名中的试用索引和/或时间戳。然后,您可以使用正确的文件名找到并加载文件。

答案 3 :(得分:1)

您还可以查看ff包。