【问题标题】:Specify directory with setwd()使用 setwd() 指定目录
【发布时间】:2012-09-07 19:53:15
【问题描述】:

我知道在 R 中设置我的工作目录我可以这样做:

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

如果 mydir 是唯一的目录名,有没有办法指定工作目录而不说明 dir1/dir2 ?

谢谢

【问题讨论】:

  • 我将您的问题解释为希望计算机自动查找目录,这可能会很困难。您必须使用某种系统工具来搜索目录(在 Windows、MacOS 和 Linux 上,目录可能不同,可能存在也可能不存在)。在正确设置的 Linux 系统上,您可能可以使用类似 setwd(system("locate mydirname",intern=TRUE)) ...

标签: r working-directory


【解决方案1】:

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)

【讨论】:

  • 您应该能够构造一个允许任意数量的斜杠在找到“mydir”之前的模式。不过,我不想把它放在我的设备上。我需要用list.dirs() 中断我的测试。
  • 我不确定...pubs.opengroup.org/onlinepubs/9699919799/utilities/… 似乎不允许带括号的子表达式(例如"~/(*/)+mydir"
猜你喜欢
  • 2015-04-25
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
  • 2011-04-30
  • 2015-06-29
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多