![](/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.