【发布时间】:2013-08-06 14:48:28
【问题描述】:
我正在尝试使用外部硬盘驱动器中的目录作为工作目录来使用 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 指向并单击(会话>设置工作目录和>到源文件位置或>选择目录...)并得到相同的结果结果不开心。
我在 MacBookPro (OS X 10.7.05) 上使用 R 版本 2.15.1。我从 RStudio 版本 0.97.551 运行 R,但问题与 RStudio 无关,因为当我直接在 R 上尝试时也会发生这种情况。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
设置工作目录后
list.files(getwd())会返回什么?由于我不明白的原因,我发现 R 对相对路径有点敏感。 -
很简单,你的文件夹路径不对。
-
@Peter
list.files(getwd())为我提供了所需的文件列表,但仅list.files就一直失败。确实很奇怪。我想我将更改我的代码以用 getwd() 替换我的 WD 目录对象。谢谢。只是出于好奇,@RomanLuštrik 我的路出了什么问题?如果我尝试从 RStudio 指向并单击,我会得到相同的结果和 -
因为
WD是一个相对 路径,所以list.files(WD)只会在您执行setwd(WD)之前起作用。在您执行setwd(WD)之后,所有这些都应该工作:list.files()或list.files('.')或list.files(getwd())。如果WD是绝对 路径("/Volumes/My_HD/my_working_directory"),list.files(WD)将适用于您当前的目录。 -
如何解决? 你可以 1) 在任何地方使用绝对路径,即设置
WD <- "/Volumes/My_HD/my_working_directory"或 2) 保持WD原样,但在你之后 @987654341 @,使用本地目录'.'代替WD。
标签: r hard-drive working-directory