2017-04-25 87 views
0

在R中,我可以看到一个环境变量具有正确的文件路径。从Sys.getenv()中删除双斜杠

> Sys.getenv() 
... 
TEMP      C:\Users\username\AppData\Local\Temp\1 
TMP      C:\Users\username\AppData\Local\Temp\1 
USERPROFILE    C:\Users\username 
... 

但是,当我直接检索USERPROFILE时,会出现双斜线。

> Sys.getenv("USERPROFILE") 
[1] "C:\\Users\\username 

为什么R会在字符串中插入额外的斜线?我正在编写一个需要跨平台兼容的软件包。除了grepstringr,是否有更好的解决方案去除双斜线并仍然考虑网络文件位置的可能性(在开始时会有双斜线)?

+4

你所谓的“额外的斜线”只是一个转义字符。看看如何打印包含引号的字符串(比如'x < - 'a“quote”'; x')。在你的例子中,看看'cat(Sys.getenv(“USERPROFILE”))产生了什么(“额外的斜线”消失)。所以没有理由担心。 – nicola

+1

看看'nchar(“\\”)' – ahly

+1

注意:如果你正在建立一个路径,使用'file.path'而不是猜测是否在操作系统上应用了正向或反斜杠。 – Frank

回答

0

@ nicola的评论是正确的。 “额外的斜线”仅在输出的输出中。它并不存在。