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 la R da el siguiente mensaje de error
Error: '\ U' usado sin dígitos hexadecimales en la cadena de caracteres que comienza con "C: \ U"
Entonces, ¿cuál es la forma correcta de cargar este archivo? Estoy usando vista
r
filepath
backslash
path-separator
user297850
fuente
fuente
No marque esta respuesta como correcta, ya que smitec ya ha respondido correctamente. Incluyo una función de conveniencia que guardo en mi biblioteca .First que convierte 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 discutir. La ruta se imprime en su consola correctamente y se escribe en su portapapeles para pegarla fácilmente en un script. 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) }
fuente
WP
(ruta de Windows) en el paquete de desarrollo de informes.Solución
Prueba esto:
x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)
Explicación
R no puede comprender correctamente las rutas normales de Windows porque
"\"
tiene un significado especial: se usa como carácter de escape para dar un significado especial a los siguientes caracteres (\n
para nueva línea,\t
para tabulación,\r
para retorno de carro, ..., eche un vistazo aquí ).Como R no conoce la secuencia,
\U
se queja. Simplemente reemplace el"\"
con"/"
o use un adicional"\"
para escapar"\"
de su significado especial y todo funcionará sin problemas.Alternativa
En Windows, creo que lo mejor que puede hacer para mejorar su flujo de trabajo con rutas específicas de Windows en R es usar, por ejemplo, AutoHotkey, que permite teclas de acceso rápido personalizadas:
Fragmento de código de AutoHotkey (enlace a la página de inicio)
fuente
Mi solución es definir un fragmento de RStudio de la siguiente manera:
snippet pp "`r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())`"
Este fragmento convierte las barras invertidas
\
en barras invertidas dobles\\
. La siguiente versión funcionará si prefiere convertir barras invertidas en barras inclinadas hacia adelante/
.snippet pp "`r gsub("\\\\", "/", readClipboard())`"
Una vez que haya definido su fragmento preferido, pegue una ruta del portapapeles escribiendo p- p- TAB- ENTER(es decir, pp y luego la tecla de tabulación y luego ingrese) y la ruta se insertará mágicamente con delimitadores compatibles con R.
fuente
Reemplazar barras inclinadas \ con barras inclinadas hacia adelante / al ejecutar la máquina con Windows
fuente
Reemplazar la barra invertida con barra diagonal me funcionó en Windows.
fuente
La mejor manera de lidiar con esto en el caso de un archivo txt que contiene datos para la minería 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"))
fuente
Sé que esto es muy antiguo, pero si está copiando y pegando de todos modos, puede usar:
readClipboard () escapa de las barras invertidas por usted. Solo recuerde asegurarse de que el ".csv" esté incluido en su copia, tal vez con esto:
read.csv(paste0(readClipboard(),'.csv'))
Y si realmente desea minimizar su escritura, puede usar algunas funciones:
setWD <- function(){ setwd(readClipboard()) } readCSV <- function(){ return(readr::read_csv(paste0(readClipboard(),'.csv'))) } #copy directory path setWD() #copy file name df <- readCSV()
fuente
Creo que R está leyendo '\' en la cadena como un carácter 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 invertida normal.
fuente
readClipboard()
también funciona directamente. Copia la ruta en tu portapapelesEntonces
aparece como
[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"
fuente
Una forma sencilla es utilizar Python. en el tipo de terminal de Python
fuente