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

A.M*_*stt 5 r working-directory hard-drive

我正在尝试使用外部硬盘驱动器中的目录作为工作目录使用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"
Run Code Online (Sandbox Code Playgroud)

到目前为止很好,但随后:

> list.files(WD)
character(0)
Run Code Online (Sandbox Code Playgroud)

虽然我希望我知道的文件列表在那里,我可以看到并打开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
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助将非常感谢.谢谢.

Pet*_*ter 4

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

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

如果您正在做一些更大的事情,您可以使用“ProjectTemplate”包让自己顺利起步。在我的系统上:

# install.packages(c("ProjectTemplate"))
library(ProjectTemplate)
create.project("~/Desktop/MyProject")
Run Code Online (Sandbox Code Playgroud)

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

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

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

$ cd ~/Desktop/MyProject; git init
Run Code Online (Sandbox Code Playgroud)

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

$ git add * ; git commit -m "initial project skeleton"
Run Code Online (Sandbox Code Playgroud)

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

read.csv("./data/iris.csv", header=TRUE)
Run Code Online (Sandbox Code Playgroud)