【问题标题】:Working with 3 GB file使用 3 GB 文件
【发布时间】:2015-06-13 02:44:03
【问题描述】:

我有一个大约 500 万行的 3.8 GB 文本文件,我想在某些列上运行方差分析 - WH。

当我阅读它给出的文本文件时出现错误:

d<-read.table("test.txt", header= TRUE, sep="|")
head(d)
dim(d)

错误:无法分配大小为 31.2 Mb 的向量

如何处理这些数据?

我在 Windows 上使用 8GB 物理内存并使用带有 memory.limit(0 = 3583) 的 32 位 R

【问题讨论】:

  • 您使用的是 32 位 R 而不是 64? memory.limit() 的输出是什么?
  • 我正在使用 32 bir R 和 memory.limit(0 = 3583
  • 多少列?我怀疑你没有足够的内存。如果您只需要某些列,则可以只读取您需要的列。
  • 你绝对应该安装 64 位版本的 R,但我也会检查以确保你真的想要一个那么大的向量......

标签: r


【解决方案1】:

除了我上面的评论之外,您可以使用 data.table::fread 及其 select 参数从文件中读取选定的列。它也比read.table 快很多并且显示了进步。如果你想要一个 data.frame 而不是 data.table 你可以使用data.table = FALSE 参数。

无论如何,您确实应该使用 64 位 R。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-14
  • 2016-11-12
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多