我正在寻找一种有效的方法在R中将斜杠转换为正斜杠 . 有时我从windows复制目录的链接,我得到这样的东西:
C:\Users\jd\Documents\folder\file.txt
如何快速将其更改为 C:/Users/jd/Documents/folder/file.txt ?我甚至无法将上述表达式视为字符 . 它会抛出错误 "\u used without hex digits in character string starting ""C:\u" .
C:/Users/jd/Documents/folder/file.txt
"\u used without hex digits in character string starting ""C:\u"
谢谢 .
我认为摆脱麻烦的最好方法是在右侧面板中找到Rstudio中的文件 . 然后单击“更多”并单击“设置为工作目录” . 然后你会在控制台中看到“setwd(...)” . 您可以将其复制到您的代码中 .
这是从剪贴板转换地址的一步法
x <- gsub ( "\\\\", "/", readClipboard () )
如果我理解正确,你确实想摆脱字符串编辑 . 为了能够使用 gsub ,您必须首先手动将所有 \ 更改为 \\ . 那么,为什么不首先将 \ 更改为 / ?
gsub
\
\\
/
如果剪贴板中有字符串,则可以使用
x=scan("clipboard",what="string")
这给了
"C:\\Users\\jd\\Documents\\folder\\file.txt"
也就是说,它会自动将所有 \ 转换为 \\ . 我知道 - 不是很方便,但我知道绕过编辑的唯一方法 .
在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"
自动计划程序:
^+v:: StringReplace, clipboard, clipboard, \,/,All send %clipboard%
在控制c文件路径后,使用control shift v进行粘贴
我使用Path Copy Copy,它是Windows的一个插件,允许您在Windows中右键单击文件/文件夹时创建自定义复制命令 . 所以我的右键菜单有"Copy Full Path with Forward Slash"作为选项,它使用正斜杠复制文件/文件夹 . 我猜它每年都会节省我从手动更改斜线到R的格式 .
如果您希望在粘贴路径时使用最少的击键次数来转换反斜杠,请使用如下定义的RStudio snippet:
snippet pp "`r gsub('"', "", gsub("\\\\", "/", readClipboard()))`"
然后键入pp,TAB,ENTER并粘贴剪贴板上的文本,用正斜杠替换反斜杠并用引号括起来 .
以下是在定义上述代码段后,我通常采取的将文件路径复制到RStudio的步骤:
导航到资源管理器中的文件路径 .
如果复制文件路径,则:Shift右键单击文件,然后单击 Copy as path .
如果要复制文件夹路径,请执行以下操作:Alt d,Ctrl c .
将窗口更改为RStudio并将焦点放在要将路径粘贴到的R脚本中 .
pp,TAB,ENTER粘贴到RStudio并将反斜杠转换为正斜杠 .
没有片段定义的解决方案是
writeClipboard(gsub("\\\\", "/", readClipboard()))
我喜欢使用具有函数'Convert slash'的RStudio加载项snippetsaddin:
它将反转所选代码块中的所有斜杠,或者如果没有选择(或只选择空格),它将反转剪贴板中的所有斜杠并将其粘贴到当前光标位置(S) .
Addins就像包装一样 . 要安装这个,请执行以下操作:
devtools::install_github("sfr/RStudio-Addin-Snippets", type = "source")
9 回答
我认为摆脱麻烦的最好方法是在右侧面板中找到Rstudio中的文件 . 然后单击“更多”并单击“设置为工作目录” . 然后你会在控制台中看到“setwd(...)” . 您可以将其复制到您的代码中 .
这是从剪贴板转换地址的一步法
如果我理解正确,你确实想摆脱字符串编辑 . 为了能够使用
gsub
,您必须首先手动将所有\
更改为\\
. 那么,为什么不首先将\
更改为/
?如果剪贴板中有字符串,则可以使用
这给了
也就是说,它会自动将所有
\
转换为\\
. 我知道 - 不是很方便,但我知道绕过编辑的唯一方法 .在R中,你必须使用
\\
来逃避\
所以,你的路径应该是:为此,您可以:
然后,在提示符下,粘贴未修改的路径(CTRL V,然后按ENTER键)
最后,要将
\\
更改为/
无处不在,您可以使用gsub
,再次通过转义\
,但两次,如下所示:自动计划程序:
在控制c文件路径后,使用control shift v进行粘贴
我使用Path Copy Copy,它是Windows的一个插件,允许您在Windows中右键单击文件/文件夹时创建自定义复制命令 . 所以我的右键菜单有"Copy Full Path with Forward Slash"作为选项,它使用正斜杠复制文件/文件夹 . 我猜它每年都会节省我从手动更改斜线到R的格式 .
如果您希望在粘贴路径时使用最少的击键次数来转换反斜杠,请使用如下定义的RStudio snippet:
然后键入pp,TAB,ENTER并粘贴剪贴板上的文本,用正斜杠替换反斜杠并用引号括起来 .
以下是在定义上述代码段后,我通常采取的将文件路径复制到RStudio的步骤:
导航到资源管理器中的文件路径 .
如果复制文件路径,则:Shift右键单击文件,然后单击 Copy as path .
如果要复制文件夹路径,请执行以下操作:Alt d,Ctrl c .
将窗口更改为RStudio并将焦点放在要将路径粘贴到的R脚本中 .
pp,TAB,ENTER粘贴到RStudio并将反斜杠转换为正斜杠 .
没有片段定义的解决方案是
我喜欢使用具有函数'Convert slash'的RStudio加载项snippetsaddin:
Addins就像包装一样 . 要安装这个,请执行以下操作: