我正在尝试使用外部硬盘中的目录作为工作目录使用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时也会发生。
非常感谢任何帮助。感谢。
答案 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)