2017-04-25 89 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的評論是正確的。 「額外的斜線」僅在輸出的輸出中。它並不存在。