![](/img/trans.png)
[英]Why R uses forward slash (/) and not backslash (\) in file paths
[英]Efficiently convert backslash to forward slash in R
我正在尋找一種在 R 中將反斜杠轉換為正斜杠的有效方法。有時我在 Windows 中復制目錄的鏈接,我得到如下信息:
C:\Users\jd\Documents\folder\file.txt
如何快速將其更改為C:/Users/jd/Documents/folder/file.txt
? 我什至無法將上述表達式讀為字符。 它拋出一個錯誤
"\u 在以 ""C:\u" 開頭的字符串中不使用十六進制數字。
我知道 R 中的 TAB 函數有助於快速找到位置,但只是想知道是否還有其他解決方法。 我也可以將工作目錄更改為文件夾的位置。 我只是在玩耍並試圖將反斜杠轉換為正斜杠並且不是直截了當的所以只是因為好奇才問這個。
在 R 中,你必須用\\
轉義\
所以,你的路徑應該是:
x <- "C:\\Users\\jd\\Documents\\folder\\file.txt"
為此,您可以執行以下操作:
x <- readline()
然后,在提示符下,粘貼您未修改的路徑(CTRL+V 然后 ENTER)
最后,要將\\
更改為/
任何地方,您可以使用gsub
,再次轉義\
,但兩次,如下所示:
gsub("\\\\", "/", x)
# [1] "C:/Users/jd/Documents/folder/file.txt"
如果您希望在粘貼路徑時使用最少的擊鍵次數來轉換反斜杠,請使用如下定義的 RStudio 代碼段:
snippet pp
"`r gsub('"', "", gsub("\\\\", "/", readClipboard()))`"
請記住在第二行前面加上一個tab ,而不是多個空格以使代碼段起作用。
然后鍵入pp 、 TAB 、 ENTER並粘貼剪貼板上的文本,將反斜杠替換為正斜杠並用引號括起來。
一旦定義了上述代碼段,我通常會采取以下步驟將文件路徑復制到 RStudio:
我使用Path Copy Copy ,它是 Windows 的一個插件,允許您在 Windows 中右鍵單擊文件/文件夾時創建自定義復制命令。 所以我的右鍵菜單有“用正斜杠復制完整路徑”作為選項,它用正斜杠復制文件/文件夾。 我猜每年手動將斜杠更改為 R 的格式可以節省我的時間。
如果我理解正確,您確實想擺脫字符串編輯。 為了能夠使用gsub
,您必須先手動將所有\
更改為\\
。 那么,為什么不首先將\
更改為/
呢?
如果剪貼板中有字符串,則可以使用
x=scan("clipboard",what="string")
這給
"C:\\Users\\jd\\Documents\\folder\\file.txt"
也就是說,它會自動將所有\
轉換為\\
。 我知道 - 不是很方便,但我知道繞過編輯的唯一方法。
這是從剪貼板轉換地址的一步方法
x <- gsub ( "\\\\", "/", readClipboard () )
自動熱鍵程序:
^+v::
StringReplace, clipboard, clipboard, \,/,All
send %clipboard%
在 control+c 文件路徑后,使用 control + shift + v 粘貼
沒有片段定義的解決方案是
writeClipboard(gsub("\\\\", "/", readClipboard()))
R 具有內置的r"(C:\myfolder\)"
命令,可將字符串中的反斜杠轉換為雙反斜杠。
x <- r"(C:\myfolder\)"
print(x)
"C:\\我的文件夾\\"
唯一的問題是它不能接受變量,只能接受類型化的字符串
我認為擺脫麻煩的最好方法是在 Rstudio 的右側面板中找到該文件。 然后單擊“更多”並單擊“設置為工作目錄”。 然后您將在控制台中看到“setwd(...)”。 您可以將其復制到您的代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.