Problemas de ruta de archivo en R usando Windows (error de “dígitos hexadecimales en la cadena de caracteres”)

Ejecuto R en Windows y tengo un archivo csv en el escritorio. Lo cargo de la siguiente manera,

x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE) 

pero el R da el siguiente mensaje de error

Error: ‘\ U’ usado sin dígitos hexadecimales en la cadena de caracteres que comienza en “C: \ U”

Entonces, ¿cuál es la forma correcta de cargar este archivo? Estoy usando Vista

reemplace todo el \ con \\ .

está tratando de escapar del siguiente caracter en este caso, la U así que para insertar un \ necesitas insertar un escapado \ que es \\

No marque esta respuesta como correcta ya que smitec ya respondió correctamente. Incluyo una función de conveniencia que guardo en mi biblioteca .Primero que hace que convertir una ruta de Windows al formato que funciona en R (los métodos descritos por Sacha Epskamp). Simplemente copie la ruta a su portapapeles (ctrl + c) y luego ejecute la función como pathPrep() . No hay necesidad de una discusión La ruta se imprime correctamente en su consola y se escribe en su portapapeles para pegar fácilmente en un guión. Espero que esto sea útil.

 pathPrep <- function(path = "clipboard") { y <- if (path == "clipboard") { readClipboard() } else { cat("Please enter the path:\n\n") readline() } x <- chartr("\\", "/", y) writeClipboard(x) return(x) } 

Solución

Pruebe esto: x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)

Explicación

R no puede entender correctamente las rutas de Windows normales porque la "\" tiene un significado especial: se usa como carácter de escape para dar a los siguientes caracteres un significado especial ( \n para nueva línea, \t para tabulación, \r para retorno de carro, ... ., mira aquí ).

Como R no conoce la secuencia \U se queja. Simplemente reemplace el "\" con "/" o use un "\" adicional para escapar del "\" de su significado especial y todo funciona sin problemas.

Alternativa

En Windows, creo que lo mejor que puede hacer para mejorar su flujo de trabajo con las rutas específicas de Windows en R es usar, por ejemplo, AutoHotkey, que permite teclas de acceso rápido personalizadas:

  • definir una tecla rápida, p. ej. Cntr - Shift - V
  • le asigna un procedimiento que reemplaza las barras invertidas dentro de su Portapapeles con slaches ...
  • cuando quieras copiar pegar una ruta en R, puedes usar Cntr - Shift - V en lugar de Cntr - V
  • Et-voila

Fragmento de código de AutoHotkey (enlace a la página de inicio)

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

Mi solución es definir un fragmento de RStudio de la siguiente manera:

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

Este fragmento convierte barras diagonales inversas en barras invertidas dobles \\ . La siguiente versión funcionará si usted prefiere convertir los backslahes en barras diagonales / .

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

Una vez que haya definido su fragmento preferido, pegue una ruta desde el portapapeles escribiendo ppTABENTER (que es pp y luego la tecla de tabulación y luego intro) y la ruta se insertará mágicamente con delimitadores amigables para R.

La mejor manera de lidiar con esto en el caso del archivo txt que contiene datos para la extracción de texto (voz, boletín informativo, etc.) es reemplazar “\” con “/”.

Ejemplo:

 file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main")) 

Reemplazar barras diagonales \ con barras diagonales / cuando se ejecuta la máquina de Windows

Creo que R está leyendo el ‘\’ en la cadena como un personaje de escape. Por ejemplo \ n crea una nueva línea dentro de una cadena, \ t crea una nueva pestaña dentro de la cadena.

‘\’ funcionará porque R reconocerá esto como una barra diagonal inversa normal.

Una forma simple es usar Python. en el tipo de terminal de python

r “C: \ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv” y obtendrá ‘C: \ Users \ surfcat \ Desktop \ 2006_dissimilarity.csv’

Intereting Posts