R list.files(my_working_directory)显示没有文件,但我知道它们在那里。怎么修?

时间:2013-08-05 19:13:29

标签: r hard-drive working-directory

我正在尝试使用外部硬盘中的目录作为工作目录使用R.我可以将工作目录设置为我想要的位置,但是当我使用list.files时,R看不到任何内容。我也无法使用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点击(会话&gt;设置工作目录和&gt;到源文件位置或&gt;选择目录...)并得到了同样不愉快的结果。

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

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:3)

由于我认为你想在你的路径中保持一些相对性,并且因为你正在使用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)