简单存储数据以在R中进行统计分析的最佳方法


12

一段时间以来,我一直在使用文本文件来存储我的R数据。但是对于最近的项目,文件的大小太大了,原始文本文件无法处理。最好的简单替代方法是什么?


5
文本文件以什么方式变得太大?您担心他们的完整性吗?无法在其他软件中打开它们?它们加载太慢了吗?硬盘太大(笔记本电脑?)?
晚会

3
+1随着项目的增长而管理数据是数据分析中的普遍问题(并且并非专门针对R)。基本问题是数据完整性而不是文件大小:提出某种形式的压缩只会掩盖而不是解决它。
whuber

超过一定大小的txt似乎不起作用。我可以将多余的数据添加到txt文件中,然后将其加载到R中,但是多余的数据不在R中。怀疑随着我项目的发展,我将再次
遇到

您需要向我们提供更多有关您的数据的信息,没有所谓的“最佳方式处理任何类型的数据”之类的东西。
zx8754 2013年

您是说read.table还是read.csv默默地失败?您是否绝对确定没有周围有几个文件以及一些编码错误(错误的路径,错误的文件名等)?只是为了解决问题,您可能还想给我们一个大概要处理多少变量和多少记录的想法。
晚会

Answers:


10

标准R方法是使用saveload。如果save在导入和注释后在数据框上运行,则可以指定它,compress=TRUE并且压缩和快速的load时间会让您感到惊讶。如果对象大小小于约400MB,则效果特别好。否则,请查看上面的一些建议或ffR中的强大软件包。

Hmisc包装几乎没有包装纸SaveLoad可以使上面的包装更轻松:

mydata <- csv.get(...)  # Hmisc package, has several options
Save(mydata)   # writes mydata.rda to current working directory
....
Load(mydata)   # reads mydata.rda and creates mydata data frame

9

看一下SQLite3数据库。每个数据库都是一个文件,因此不需要设置数据库服务器。

创建数据库:

$ sqlite3 my_db.db3
> CREATE TABLE my_table ( col1 TEXT );

与R配合使用,https://gist.github.com/lynaghk/1062939


+1使用实际的数据库是朝正确方向迈出的重要一步。
ub


谢谢,我会尝试这条路线。我也看过MySQL,但似乎超出了我的需要。
玩具莫尔托

4

有许多通用选项。

  • 您可以压缩文本。
  • 您可以在文本上输入二进制文件,而不用ascii编写

大压缩取决于数据。

我的猜测(并且您没有指定,所以我必须猜测)是,您希望将类似电子表格的数据存储在csv(逗号分隔)以外的其他内容中。

我最喜欢的格式之一(我爱MatLab)是hdf。

以下是有关HDF的R相关信息:

它是一种高密度超级计算数据存储格式。它可以非常快速和高效。它也比压缩文本更密集(毫不奇怪)。


3

R中的标准文件读取功能现在将自动轻松读取压缩文件。因此,只需对数据运行简单的gzip压缩并像往常一样读取纯文本即可。

read.table('myfile.gz')

整齐!我不知道。谢谢。
EngrStudent 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.