5

我正在尝试使用外部硬盘驱动器中的目录作为工作目录来使用 R。我可以将工作目录设置到我想要的位置,但是当我使用list.filesR 时什么都看不到。我也不能read.delim用来加载文件。

例如:

> rm(list = ls())
> WD<-"../../../Volumes/My_HD/my_working_directory" 
> setwd(WD) 
> getwd()
[1] "/Volumes/My_HD/my_working_directory"

到目前为止一切顺利,但随后:

> list.files(WD)
character(0)

虽然我希望有一份我知道的文件列表,并且我可以使用 Finder 和终端查看和打开这些文件。实际上,R 脚本本身就在该目录中。

如果然后我尝试打开一个文件,我会得到如下信息:

> myfile <- read.delim(paste(WD,"/file_name", sep = ""), header = T)
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file '../../../Volumes/My_HD/my_working_directory/file_name': No such file or directory

我以为我在指定目录的路径时做错了什么,但我尝试从 RStudio 指向并单击(会话>设置工作目录和>到源文件位置或>选择目录...)并得到同样不满意的结果。

我在 MacBookPro (OS X 10.7.05) 上使用 R 版本 2.15.1。我正在从 RStudio 版本 0.97.551 运行 R,但问题与 RStudio 无关,因为当我直接在 R 上尝试时也会发生这种情况。

任何帮助将不胜感激。谢谢。

4

1 回答 1

4

由于我认为您希望在您的路径中保持一些相对性,并且因为您使用的是 RStudio,所以我将分享一种我经常使用的策略。如果我正确地猜到了您要查找的内容,那么这应该完全回避这个问题。

首先从 RStudio 中创建一个新项目。打开该项目后,您会发现您的工作目录getwd()将方便地设置在您的项目文件所在的位置。

如果你正在做一些更大的事情,你可以通过使用“ProjectTemplate”包让自己走上正轨。在我的系统上:

# install.packages(c("ProjectTemplate"))
library(ProjectTemplate)
create.project("~/Desktop/MyProject")

这设置了一个项目框架,包括单元测试文件夹、doc 文件夹以及我可能需要的“正确”R 项目的所有其他内容。

接下来我从上面提到的 RStudio 创建一个项目。从现有目录创建它。该项目将打开,您的所有路径都将相对于您的“MyProject”文件夹的根目录。

我还喜欢在使用 git 存储库时对其进行初始化。从 OS X 终端窗口:

$ cd ~/Desktop/MyProject; git init

...然后添加/提交裸骨架

$ git add * ; git commit -m "initial project skeleton"

从您的 RStudio 会话中,您可以加载与项目根目录相关的内容。假设您的数据子文件夹中有 iris.csv:

read.csv("./data/iris.csv", header=TRUE)
于 2013-08-05T20:05:19.337 回答