【问题标题】:Is there a way to use sql statements when loading .Rdata files into R?将 .Rdata 文件加载到 R 中时,有没有办法使用 sql 语句?
【发布时间】:2014-09-12 10:42:47
【问题描述】:

我更喜欢通过将它们保存为 .Rdata 文件来存储我的数据帧,因为将它们保存为 csv 文件会占用更多的目录空间。但是,当使用 csv 时,我可以使用 sql 语句(R 包 sqldf)加载文件。

是否有可用的包可以在加载 .Rdata 文件时执行相同的操作?

提前非常感谢!

【问题讨论】:

  • 为什么需要使用sql语句?只需使用load
  • 我想可能会在 .RData 中加载部分数据帧? load_sql("foo.RData","mydata","select * where age > 100") 还是什么? (注意:这并不存在)
  • spacedman,我就是这个意思!
  • 大卫,我的数据框非常大,我只需要时不时的一小部分。

标签: sql r csv rdata


【解决方案1】:

如果您的数据列是相当简单的类型(字符、数字、日期),请考虑通过 RSQLite 包保存为 SQLite 数据库。

这不仅可以让您稍后通过 SQL 调用加载部件,它还可以跨平台和多语言(曾经尝试过从 Python 代码中读取 .RData 吗?),并且可能像 .RData 文件一样压缩。

缺点是您不能很容易地存储任意 R 对象(如列表或复杂类)。

【讨论】:

  • 我试图弄清楚如何通过 rsqlite 保存我的数据帧。直到现在都没有成功。你能告诉我我必须使用哪个功能吗?
  • help(SQLite) 页面有示例。它的第一个将 USArrests 数据框保存到 SQLite 表中,然后显示如何使用 SQL 查询将其读回。我不会在这里复制所有内容。试试看,然后可能会问一个新问题!
  • 它工作正常。但是,将示例数据帧保存为 sqlite 表将使用大约 500 mb 的磁盘空间,而将相同的数据帧保存为 rdata 文件使用 40 mb。这有意义吗?
猜你喜欢
  • 2020-04-19
  • 2021-01-11
  • 2019-11-21
  • 2012-03-23
  • 2014-04-10
  • 2013-07-13
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多