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