R的数据库建议

Pro*_*ern 12 database r

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

Dir*_*tel 15

快速评论:

  • R很擅长这一点,作为一种用数据编程语言,有很多接口
  • 有一个专门用于数据导入/导出的整个手册,它有一个关于关系数据库部分,所以从那里开始.
  • R拥有广泛使用的DBI软件包,它为许多后端提供了统一的接口,其中包括SQLite,MySQL,PostgreSQL,Oracle,...使用它,可能使用RSQLite来快速获得一些东西.您仍然可以在之后切换后端.
  • 还有RODBC,但我觉得ODBC工作繁琐.
  • R还在Paul Gilbert 的TSdbi包中有一个专门的变体,它将DBI相似的抽象带到了时间序列数据库.它还支持多个后端.
  • data.table包为这个笔试和上索引和聚集速度非常快.

  • 你不知道你在说什么.DBI坚如磐石,已经出现了十年以上 - RSQLite,RMySQL,RPostgreSQL,ROracle*每天都使用它*. (6认同)

bak*_*kal 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
Run Code Online (Sandbox Code Playgroud)

RMySQL:MySQL 数据库的 R 接口

R 的数据库接口和 MySQL 驱动程序。此版本符合 DBI 0.2-2 包中实现的数据库接口定义。

MySQL 数据库:

适用于您在问题中引用的所有平台,以及更多内容,请在此处下载。

  • 对于单个用户来说,RSQLite 更容易设置并且速度相当快。 (2认同)