首页 文章

在R中有效地将反斜杠转换为正斜杠

提问于
浏览
35

我正在寻找一种有效的方法在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" .

谢谢 .

9 回答

  • 9

    我认为摆脱麻烦的最好方法是在右侧面板中找到Rstudio中的文件 . 然后单击“更多”并单击“设置为工作目录” . 然后你会在控制台中看到“setwd(...)” . 您可以将其复制到您的代码中 .

  • 5

    这是从剪贴板转换地址的一步法

    x  <- gsub  ( "\\\\",  "/",  readClipboard ()  )
    
  • 7

    如果我理解正确,你确实想摆脱字符串编辑 . 为了能够使用 gsub ,您必须首先手动将所有 \ 更改为 \\ . 那么,为什么不首先将 \ 更改为 /

    如果剪贴板中有字符串,则可以使用

    x=scan("clipboard",what="string")
    

    这给了

    "C:\\Users\\jd\\Documents\\folder\\file.txt"
    

    也就是说,它会自动将所有 \ 转换为 \\ . 我知道 - 不是很方便,但我知道绕过编辑的唯一方法 .

  • 36

    在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"
    
  • 7

    自动计划程序:

    ^+v::
    StringReplace, clipboard, clipboard, \,/,All
    send %clipboard%
    

    在控制c文件路径后,使用control shift v进行粘贴

  • 3

    我使用Path Copy Copy,它是Windows的一个插件,允许您在Windows中右键单击文件/文件夹时创建自定义复制命令 . 所以我的右键菜单有"Copy Full Path with Forward Slash"作为选项,它使用正斜杠复制文件/文件夹 . 我猜它每年都会节省我从手动更改斜线到R的格式 .

  • 14

    如果您希望在粘贴路径时使用最少的击键次数来转换反斜杠,请使用如下定义的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并将反斜杠转换为正斜杠 .

  • 0

    没有片段定义的解决方案是

    writeClipboard(gsub("\\\\", "/", readClipboard()))
    
  • 1

    我喜欢使用具有函数'Convert slash'的RStudio加载项snippetsaddin

    它将反转所选代码块中的所有斜杠,或者如果没有选择(或只选择空格),它将反转剪贴板中的所有斜杠并将其粘贴到当前光标位置(S) .

    Addins就像包装一样 . 要安装这个,请执行以下操作:

    devtools::install_github("sfr/RStudio-Addin-Snippets", type = "source")
    

相关问题