【发布时间】:2015-09-08 13:58:46
【问题描述】:
我有一个大约 240 mio 行和 3 列的矩阵,我需要在 R 中“导入和使用”。我现在无法访问服务器,所以我有了导入子矩阵的想法,使用它,然后将其从环境中丢弃并重复该过程,直到整个矩阵完成(对于我必须做的事情,它也同样有效)。 特别是,由于行数是 11 的倍数,我决定使用 11 个子矩阵。因此,我一直在做的事情如下:
- 定义Nstep为每次导入的行数(总nr of rows/11,约22 Mio。)
- mat.n
- 做我该做的事
- 丢弃矩阵
- 对 n = 1, 2, ..., 11 重复(手动,以确保每一步都成功)上述操作。
在完成第 6 个块的导入后,我意识到我离开了 header=T,所以我设置了 header=F。从那时起,每次我尝试导入文件时,R 会话都会中止。 *编辑:重新设置 header=T 也不起作用。
我认为这取决于 header=F 的东西,但事实并非如此。因此我猜它与 Nstep 或子矩阵的第一行有关。我试着做一些实验: - 如果我重新导入第一个块,它可以工作 - 如果我导入第 5 个块,仅前 10 行,则需要很长时间(我让它在大约 20 分钟前开始并且尚未完成,即使它只有 10 行) - 如果我在 R 上重复它而不是在 R Studio 上重复,我会遇到同样的问题。
知道为什么会这样吗? 我正在使用 R Studio 版本 0.98.1028 上的 R 版本 3.1.1,平台:x86_64-w64-mingw32/x64(64 位)。
【问题讨论】: