6

我在 Macbook Air 上运行一些基本的数据操作(4GB 内存,120GB HD,8GB 可用)。我的输入文件大约是 40 MB,直到过程结束我才向磁盘写入任何内容。但是,在我的过程中,我的 Mac 说没有内存可以运行。我检查了硬盘,发现还剩下大约 500MB。所以这是我的问题:

  1. R怎么可能这么快就填满了我的磁盘?我的理解是 R 将所有内容都存储在内存中(除非我明确地将某些内容写入磁盘)。
  2. 如果 R 确实在磁盘上写入临时文件,我怎样才能找到这些文件来删除它们?

非常感谢。

更新 1:我收到的错误消息:

Force Quit Applications: Your Mac OS X startup disk has no more space available for 
application memory

更新 2:我检查了 tempdir(),它显示“var/folders/k_xxxxxxx/T//Rtmpdp9GCo”。但我无法从我的 Finder 中找到该导演

更新 3:在 R 中 unlink(tempdir(),recursive=TRUE) 并重新启动计算机后,我恢复了磁盘空间。我仍然想知道 R 是否在我的硬盘上写入以避免将来出现类似情况。

更新 4:我的主要对象大约是 1GB。我使用活动监视器来跟踪进程,虽然内存使用量约为 2GB,但磁盘活动非常高:数据读取:14GB,数据写入,44GB。我不知道 R 在写什么。

4

2 回答 2

7

R 写入一个临时的每个会话目录,它也在退出时清理它。

它遵循约定并尊重 TMP 和相关的环境变量。

于 2012-11-26T15:02:20.917 回答
2

是什么让您认为磁盘空间与此有关?R 需要将所有对象保存在内存中,而不是磁盘之外(默认情况下;有附加包允许对磁盘上存储的文件进行操作的子集,该文件太大而无法放入 RAM)。

“过程”中的一个步骤是导致 R 从操作系统请求一块 RAM 以使其能够继续。操作系统无法遵守,因此 R 终止了您正在运行的“进程”,并显示您未能提供给我们的错误消息。[提示,如果您显示实际错误而不是您的释义,这将有所帮助。您正在运行的代码的一些暗示也会有所帮助。40MB 的磁盘空间听起来像是一个相当大的文件;多少行/列等?R中的对象有多大;object.size()?

于 2012-11-26T15:12:01.323 回答