使用setwd()指定目录

3

我知道在R中设置工作目录的方法是:

setwd("~/dir1/dir2/mydir")

如果mydir是一个唯一的目录名称,有没有方法可以指定工作目录而不指定dir1/dir2?
谢谢。

1
我理解你的问题是希望计算机能够自动找到目录,这可能会比较困难。你需要使用某种系统工具来搜索目录(在Windows、MacOS和Linux上可能不同,也可能存在或不存在)。在一个正确设置的Linux系统上,你可以尝试使用类似setwd(system("locate mydirname",intern=TRUE))的方法... - Ben Bolker
1个回答

12

Sys.glob 可以实现你想要的功能:

setwd(Sys.glob("~/*/*/mydir"))

如果你不知道它的嵌套深度,可以使用list.filesdir

list.files(path="~", pattern="mydir", all.files=TRUE, full.names=TRUE,
  recursive=TRUE, ignore.case=FALSE, include.dirs=TRUE)

3
你应该能够构建一个模式,在找到“mydir”之前允许任意数量的斜杠。不过我不想在我的设备上放任它。我需要通过 list.dirs() 中断我的测试。 - IRTFM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接