Convierta de manera eficiente la barra diagonal inversa en barra inclinada en R

Estoy buscando una manera eficiente de convertir barra diagonal inversa en barra diagonal en R. En algún momento copio el enlace del directorio desde la ventana y obtengo algo como esto:

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

¿Cómo puedo cambiar esto rápidamente a C:/Users/jd/Documents/folder/file.txt ? Ni siquiera puedo leer la expresión anterior como personaje. Lanza un error "\u used without hex digits in character string starting ""C:\u" .

Gracias.

En R, tienes que escapar del \ con \\ Entonces, tu ruta debería ser:

 x <- "C:\\Users\\jd\\Documents\\folder\\file.txt" 

Para obtener eso, puedes hacer:

 x <- readline() 

luego, cuando se le solicite, pegue su ruta no modificada (CTRL + V luego ENTER)

Finalmente, para cambiar \\ a / todas partes, puede usar gsub , una vez más escapando el \ , pero dos veces, de la siguiente manera:

 gsub("\\\\", "/", x) # [1] "C:/Users/jd/Documents/folder/file.txt" 

Si desea el menor número de pulsaciones de teclas para convertir barras diagonales inversas al pegar rutas, utilice un fragmento de RStudio definido de la siguiente manera:

 snippet pp "`r gsub('"', "", gsub("\\\\", "/", readClipboard()))`" 

A continuación, escriba pp , TAB , ENTER y el texto en el portapapeles se pega, las barras invertidas se reemplazan con barras diagonales y se rodean con comillas.

Estos son los pasos que generalmente tomo para copiar las rutas de archivos a RStudio una vez que se ha definido el fragmento de arriba:

  1. Navegue a la ruta del archivo en el explorador.
  2. Si copia una ruta de archivo, a continuación: Shift + clic derecho en el archivo, luego haga clic en Copiar como ruta .
  3. Si copia una ruta de carpeta, entonces: Alt + d , Ctrl + c .
  4. Cambia la ventana a RStudio y concéntrate en el guión R donde quieras pegar la ruta.
  5. pp , TAB , ENTER para pegar en RStudio y convertir barras diagonales inversas para barras diagonales.

Si entiendo correctamente, desea deshacerse de la edición de cadenas. Para poder usar gsub , gsub debe cambiar todo \ a \\ manualmente. Entonces, ¿por qué no simplemente cambiar \ / en primer lugar?

Si tiene la cadena en el portapapeles, puede usar

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

Esto da

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

Es decir, convierte todo \ a \\ automáticamente. Lo sé, no es muy útil, pero la única forma que conozco de resolver la edición.

progtwig autohotkey:

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

después del control + c de la ruta del archivo, use control + shift + v para pegar

Utilizo Path Copy Copy , que es un complemento de Windows que le permite crear comandos de copia personalizados cuando hace clic derecho en un archivo / carpeta en Windows. Así que mi menú de clic derecho tiene “Copiar ruta completa con barra diagonal” como una opción, que copia el archivo / carpeta con barras diagonales. Supongo que me ahorra días cada año desde el cambio manual de barras diagonales hasta el formato de R.

Me gusta usar el complemento RStudio snippetsaddin que tiene la función ‘Convertir barra inclinada’ :

Revertirá todas las barras en el (los) bloque (s) seleccionado (s) de código, o si no hay selección (o solo se selecciona el espacio en blanco), invertirá todas las barras en el portapapeles y lo pegará en la posición actual del cursor (s) ( s).

Los complementos se asignan como un paquete. Para instalar este, haz esto:

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

Aquí hay un método de un paso para convertir la dirección del portapapeles

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

Una solución sin una definición de fragmento es

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