[英]Moving down a folder in working directory
我试图在R中直接向下移动一个文件夹。例如,我有一个foo / bar的工作目录,我想移动到foo / bar /子文件夹:
setwd("/Users/foo/bar")
getwd()
[1] "/Users/foo/bar"
setwd("~/subfolder")
然后我收到:
setwd中的错误(“〜/ subfolder”):无法更改工作目录
我究竟做错了什么?
符号~
不会像你认为的那样做。 它并不意味着“当前目录”。 ~
指的是你的主目录。
用于当前目录的正确符号是句点.
那么,你想要的是什么
setwd("./subfolder")
当前操作系统通常假设如果未提供完整路径,则默认将使用相对路径(即,相对于当前目录)。 因此,也可以简单地使用
setwd("subfolder")
路径中使用的符号摘要
.
=当前目录 ..
=当前目录的父级 ~
=主目录( 见主目录下的解释性说明 ) /
作为第一个字符=根目录例如setwd("/folder")
/
path内路径中的目录之间的分隔符。 例如setwd("/folder/subfolder")
\\
=在Windows和DOS操作系统只 ,反斜线\\
相当于/
。 如果你在R中使用这种格式,你需要使用双反斜杠\\\\
来“ 逃避 ”这个。 例如, setwd("C:\\\\folder\\\\subfolder")
。 但是 ,为了保持平台之间的兼容性,建议坚持在Windows系统上使用正斜杠/
偶数,因为这将由R转换为正确的路径。 关于'主页'目录的解释性说明
在Unix衍生的和类Unix操作系统(例如Linux,OsX,BSD)中, ~
所指的home
目录的含义是直截了当的。 ~
的含义由操作系统定义。 根据操作系统的不同,通常是/home/<username>
(在Linux和BSD中), /Users/<username>
(在OS X中)或类似的平台相关变体。 请参阅此处以获取各种操作系统的定义列表。
但是在Windows中,情况略有不同,因为操作系统不会将"~"
识别为有效路径。 R for Windows FAQ解释了expand.path
如何解释Windows计算机上的主目录,
主目录设置如下:如果设置了环境变量R_USER,则使用其值。 否则,如果设置了环境变量HOME,则使用其值。 在这两个用户可控设置之后,R尝试查找系统定义的主目录。 它首先尝试使用Windows“个人”目录(通常为C:\\ Users \\ username \\ Documents)。 如果失败,如果设置了环境变量HOMEDRIVE和HOMEPATH(它们通常都是),则值为$ {HOMEDRIVE} $ {HOMEPATH}。 如果所有这些都失败,则使用当前工作目录。
根据我的经验,在Windows R上,最常将"~"
解释为"C:\\Users\\username\\Documents"
。 您可以使用以下命令查找环境变量的值
Sys.getenv("R_USER")
Sys.getenv("HOME")
Sys.getenv("HOMEDRIVE")
Sys.getenv("HOMEPATH")
并且,您可以通过使用该命令找出解释为"~"
路径
normalizePath("~")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.