4

我正在与大量本科 R 新手一起教授 R 教程。我还尝试在 RPubs 上格式化我的笔记,以便其他人可以轻松使用它们。没有什么比人们错误地指定工作目录或将电子表格文件保存到与其工作目录不同的地方更快的事情了。

是否可以定义跨平台通用的工作目录?例如,一行代码或类似的函数

setwd( someplace that is likely to exist on every computer)

这可能涉及查找通常存在于所有计算机上的某个位置的函数,例如桌面、下载文件夹或 R 目录。

4

2 回答 2

4

一般来说,你最好的选择是去用户的家庭区域,

setwd("~")
path.expand("~")

由于您是教新手,一个常见的问题是学生注意到 R 包目录~/R/并假设他们应该将脚本放在此目录;从而产生奇怪的错误。为了避免这种情况,我会去

dir.create("~/RCourse", FALSE)
setwd("~/RCourse")

如果您使用 RStudio,您可以让他们创建一个 RStudio 项目。

过去,我遇到过这种方法不起作用的情况。例如,有些人将他们的家庭区域作为网络驱动器,但无法连接到互联网或通过防火墙。

于 2016-09-03T18:28:18.713 回答
2

你问了关于

每台计算机上可能存在的某个地方

是的,R 努力确保这返回一个有效的目录: tempdir().

但是,主要的危险可能是该目录将在会话结束后消失(除非您覆盖了在结束时删除每个会话临时目录的默认行为)。在那之前,它可以工作。

不过,这可能很有用。我有时使用它来编写我不想在当前目录中混乱的临时文件,或者~.

否则@csgillespie 给了你一个关于$HOMEaka的好答案~

于 2016-09-03T18:40:12.277 回答