我认为这是错误的问题。 rm(list = ls(...))construct 只是一个讨厌的病毒,通过在用户之间复制的代码进行传播。
这个结构有什么需要?
- 整洁的工作空间
- 减少内存使用
- 简化依赖网络(
rm 无济于事)
为什么 R 的设计者一开始就不提供一个干净的工作空间?他们这样做了,它只是被滥用了,Windows 的默认行为以无益的方式隐藏了细节。
为什么启动 R 时工作区不干净?
当 R 启动时,它总是与“当前目录”一起工作,就像在“文件夹中”一样,如果您要求“file1.iaf”,则不需要显式指向“C:/临时/myfolderofiafs/file1.iaf”。
在 unix 中,这就是您键入时所在的位置
R
而且你输入的时候就可以直接看到
pwd
在 Windows 中,在命令行中也是如此(将 pwd 替换为 dir 并查找“...的目录”),但是当您“(双击)R 快捷方式”时,系统会为您执行相同的操作,但它从哪里开始由快捷方式的“属性”控制。您可以通过右键单击快捷方式来查看此内容,单击“属性”并查看“开始于”字段的内容。 (它可能是一个系统通配符,如 %HOMEPATH% 或其他,但它可能代表“C:/Users/username/Documents”。)
R 默认从 your 文件夹之一开始,因为它是唯一可以真正知道有权做事的地方。
我使用的是 Windows 8,这在 Windows 3.1、95、98、NT、CE、2000、XP、Vista 和 7 上略有不同,但涵盖了所有可以留给 google 的内容。
查看“开始于”文件夹,您可能看不到名为“.Rdata”的文件,但那是因为它被隐藏了。启动 R,并在执行任何其他操作之前运行以下代码:
list.files(all = TRUE)
是否有“.Rdata”文件?
(您可以在命令行中使用“dir /a”查看它,或者在 unix 中使用“ls -a”查看。)
当您启动 R 时,默认情况下会加载该文件,就像您执行了以下操作一样:
load(".Rdata")
这就是工作区“需要清理”的原因,但在我看来,您应该删除那个“.Rdata”文件并摆脱工作流程中的笨拙黑客。
你可以从 R 中解决这个问题,这样做:
unlink(".Rdata")
当你退出 R 时,选择“否”,这样这个隐藏文件就不会再次被重新创建。如果您不小心创建了它,请追捕并再次杀死它。
如果您真的想保存整个工作区,请使用:
save.image("myentireworkspaceorperhapssomesensiblefilenameforit.Rdata")
或者只是其中的几个对象:
save(keepme, keepme2, andme, file = "justsomeofmyclingyobjects.Rdata")
您可以通过设置文件夹的视图属性来查看 Windows 本身中隐藏的“.Rdata”文件(这是 Windows 8,我通过“查看/选项'更改文件夹和搜索选项'”访问它):
选择“显示隐藏的文件、文件夹和驱动器”。我还强烈建议您取消单击“隐藏已知文件类型的扩展名”,因为扩展名确实是文件名的一部分,而隐藏它有时只会混淆一切。 (如果您尝试在没有此设置的情况下将文件从“file.txt”重命名为“file.R”,Windows 默认会将文件的真实名称设为“file.R.txt”)。
还有更多,在快捷方式属性的“目标”字段中,您可以添加参数,例如“--no-restore”或“--no-restore-data”。
这也将“解决”上述最终问题,但不是以正确的方式 IMO。
这些参数在命令行中可用(在 Windows 上):
Rgui --help
但您需要使用完整路径或在路径中包含 R 的 bin/* 文件夹才能正常工作。请参阅?Startup 进行更全面的讨论,