2014-02-27 22 views
0

我經常使用的窗口進行復制和粘貼的文件路徑爲R的腳本,這導致類似如下:如何操作R中的文件路徑?

file = 'C:\this\is\a\test.tif' 

然而,這會導致錯誤和我必須手動從\切換路徑分隔符,以/

>file = 'C:\this\is\a\test.tif' 
Error: '\i' is an unrecognized escape in character string starting "'C:\this\i" 

如果我使用Python,我會簡單地使用以下格式正確的路徑:

file = r'C:\this\is\a\test.tif' 

有沒有類似的R方法來Python的原始字符串r''方法來快速格式化路徑?

+0

不幸的是R不支持原始字符串。一個解決方法可能與'scan':http://stackoverflow.com/a/11812540/ –

+0

可能重複的[R中的文件路徑的原始文本字符串](http://stackoverflow.com/questions/8197027/raw- text-strings-for-file-paths-in-r) – eddi

+0

您可以使用RStudio的片段功能來減少粘貼Windows路徑的痛苦。請參閱https://stackoverflow.com/a/39989341/3827849 –

回答

2

從R命令行工作時,我能想到的原始字符串讀最接近的事是使用scan功能:

> tmp <- scan(what='') 
1: 'C:\this\is\a\test.tif' 
2: 
Read 1 item 
> tmp 
[1] "C:\\this\\is\\a\\test.tif" 
> 

> tmp <- scan(what='',n=1) 
1: C:\this\is\a\test.tif 
Read 1 item 
> tmp 
[1] "C:\\this\\is\\a\\test.tif" 
> cat(tmp, '\n') 
c:\this\is\a\test.tif 

scan功能提示輸入控制檯,你可以輸入或粘貼你想要的東西,在這種情況下打印tmp表明反斜槓是字面解釋的(所以打印顯示它們翻倍,cat顯示它們) 。

+1

相關(也是你的答案):http://stackoverflow.com/a/11812540/ –

+0

在控制檯中沒問題。但是如何在代碼編輯器中輸入文件路徑? – Cobin

+0

如果在代碼編輯器中工作,請按原樣粘貼,然後使用編輯器的查找和替換功能。或者使用控制檯閱讀一次,然後使用'dput'函數創建一個版本以粘貼到編輯器中。 –