Jam*_*mes 35
您可以使用dirnameon getwd来提取除当前目录的最高级别之外的所有内容:
dirname(getwd())
[1] "C:/Documents and Settings"
Run Code Online (Sandbox Code Playgroud)
Hon*_*Ooi 23
我假设你的意思是R的工作目录的父目录?
最简单的解决方案可能如下.
wd <- getwd()
setwd("..")
parent <- getwd()
setwd(wd)
Run Code Online (Sandbox Code Playgroud)
这将保存工作目录,将其更改为其父目录,获取结果parent,然后再次重置工作目录.这节省了必须处理根目录,主目录和其他特定于操作系统的功能的变幻莫测,这可能需要一堆摆弄正则表达式.
小智 19
实际上dirname允许返回几个父文件夹
Path="FolderA/FolderB/FolderC/FolderD"
dirname(Path)
Run Code Online (Sandbox Code Playgroud)
"FolderA/FolderB中/ FolderC"
dirname(dirname(Path))
Run Code Online (Sandbox Code Playgroud)
"FolderA/FolderB中"
等等...
也许这两个技巧可能会有所帮助
"~/" # after the forward slash you "are" in your home folder
Run Code Online (Sandbox Code Playgroud)
然后在窗户上
"C:/" # you are in your main hard drive
"G:/" # you are just in another hard drive :-)
Run Code Online (Sandbox Code Playgroud)
在unix上你可以做类似的事情
"/etc/"
Run Code Online (Sandbox Code Playgroud)
然后你可以进入你需要的任何子目录
或者正如@Hong Ooi 建议的那样,您可以使用以下命令进入工作目录的父目录
"../"
Run Code Online (Sandbox Code Playgroud)
注意:在最后一次正斜杠按下之后tab,您将拥有所有文件和文件夹,非常方便,尤其是在RStudio
另一种可能性:
parts <- unlist(strsplit(getwd(), .Platform$file.sep))
do.call(file.path, as.list(parts[1:length(parts) - 1]))
Run Code Online (Sandbox Code Playgroud)
这会将文件路径分割成目录,删除最后一个目录,然后再次将各部分重新组合成文件路径。
| 归档时间: |
|
| 查看次数: |
20554 次 |
| 最近记录: |