2011-04-06 66 views
13

Tengo un archivo de Excel que quiero abrir en R. Intenté ambos comandos después de guardar el archivo de Excel como un archivo csv o un archivo de texto.¿Cómo abrir un archivo CSV en R cuando R dice "no hay tal archivo o directorio"?

read.table() o read.csv()

Creo que parte del problema es donde se encuentra el archivo. Lo tengo guardado en el escritorio. ¿Que me estoy perdiendo aqui?

Aquí está la salida R

In file(file, "rt") : 
    cannot open file 'Rtrial.csv': No such file or directory 
> help.search("read.csv") 
> read.csv("Rtrial.csv") 
Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : 
    cannot open file 'Rtrial.csv': No such file or directory 
> read.table("tab") 
+2

En general, sería útil proporcionar más información; en este caso particular es difícil hacer un ejemplo verdaderamente reproducible, pero al menos podría mostrar el comando completo que intentó y el resultado de getwd() [es decir, mostrar su directorio de trabajo] –

+0

para obtener consejos generales sobre la apertura de archivos de Excel (xls , xlsx), ver http://stackoverflow.com/questions/6099243/read-an-excel-file-directly-from-ar-script/6100369#6100369 –

Respuesta

28

a tirar otra opción, ¿por qué no establecer el directorio de trabajo (preferentemente a través de una secuencia de comandos) en el escritorio usando setwd('C:\John\Desktop') y luego lea los archivos solo con los nombres de archivo

+0

+1: esta es una gran idea; Si cambia su estructura de directorio, entonces todo lo que necesita cambiar es esta línea. – Aaron

+1

Todavía no tengo claro por qué el póster original recibía un error de permisos en una de las iteraciones, entonces ... –

+0

para la base de Unix, debería ser así '' 'setwd (" ~/dir ")' ''. – affhendrawan

9

sonido como si sólo tiene un problema con la ruta de acceso. Incluya la ruta completa, si utiliza barras diagonales inversas, debe escaparse: "C:\\folder\\folder\\Desktop\\file.csv" o "C:/folder/folder/Desktop/file.csv".

myfile = read.csv("C:/folder/folder/Desktop/file.csv") # or read.table() 

También puede ser conveniente evitar espacios y símbolos en los nombres de sus archivos, aunque estoy bastante seguro de que los espacios están bien.

+0

Todavía recibo el mismo error. ¿Alguna sugerencia? – illbill

+0

Bueno, no es un error diferente .... – illbill

+0

Error en el archivo (archivo, "rt"): no se puede abrir la conexión Además: Mensaje de advertencia: En el archivo (archivo, "rt"): no se puede abrir el archivo ' C: \ Documents and Settings \ Manley \ Desktop ': Permiso denegado > – illbill

11

Trate

f <- file.choose() 

para elegir el archivo de forma interactiva y guardar el nombre en f.

A continuación, ejecute read.csv en el nombre del archivo guardado

d <- read.csv(f) 
+0

Pero luego debe elegir el archivo manualmente cada vez que ejecuta el script. – Benjamin

+0

Es cierto. Esto es más útil para el análisis exploratorio que el scripting. También puede ayudar a determinar el nombre y la ruta propia de un archivo, que luego puede escribirse como en la respuesta de Benjamin. – Aaron

6

Esta es una manera de hacerlo. Utiliza la capacidad de R para construir rutas de archivos basadas en la plataforma y, por lo tanto, funcionará tanto en Mac OS como en Windows. Además, no necesita convertir su archivo xls a csv, ya que hay muchos paquetes R que le ayudarán a leer xls directamente (por ejemplo, el paquete gdata).

# get user's home directory 
home = setwd(Sys.getenv("HOME")); 

# construct path to file 
fpath = file.path(home, "Desktop", "RTrial.xls"); 

# load gdata library to read xls files 
library(gdata); 

# read xls file 
Rtrial = read.xls(fpath); 

Dejarme saber si esto funciona.

+1

En WinXP (y posiblemente en otros Windows) la variable de entorno 'HOME' apunta a' Mis documentos', y el escritorio está en el directorio primario de esa carpeta. Usted necesita 'Sys.getenv (" PERFIL DE USUARIO ")' si existe, o 'pegar (Sys.getenv (" HOMEDRIVE "), Sys.getenv (" HOMEPATH "), sep =" ")'. –

+0

@Richie. Gracias por el puntero. Utilizo Mac OS, por lo que asumí que HOME apuntaría al padre del escritorio. – Ramnath

+0

En el mac HOME apunta a su carpeta/Usuarios (generalmente este es su nombre), entonces sí, esta es la carpeta principal del Escritorio – Benjamin

3
  1. Guardar como en Excel mantendrá el archivo abierto y lo bloqueará para que no pueda abrirlo. Cierre el archivo de Excel o usted no será capaz de utilizarlo en R.
  2. la ruta completa y escapar las barras invertidas read.csv("c:\\users\\JoeUser\\Desktop\\JoesData.csv")
1

Otra forma de leer Excel, incluido el nuevo formato xlsx, podría ser el paquete speedR (https://r-forge.r-project.org/ proyectos/speedr /). Es un importador de datos interactivo y visual. Además de importar, puede filtrar (subconjunto) los objetos existentes desde el espacio de trabajo R.

+0

Acabo de probarlo, pero no pudo obtener una vista previa de mi archivo de 3Mb. –

0

MAC OS Me pasó a mí también. Simplemente elegí de la barra de herramientas R MISC y luego elegí Change Working Directory. Pude elegir el directorio en el que se guardaba el archivo .csv. Cuando volví a la línea de comandos y escribí getwd(), el directorio completo se actualizó y se corrigió, y la función read.csv finalmente funcionó.

0

que tenía el mismo problema y cuando me registré las propiedades del archivo en el explorador de archivos, que me muestra el siguiente mensaje:

"Seguridad: Este fichero proviene de otro equipo y podría ser bloqueado para ayudar a proteger este computadora "

Haz clic en el botón" Desbloquear "y ... puedes acceder al archivo desde R sin ningún problema, solo usando la función read.csv() y desde el directorio especificado como tu directorio de trabajo, incluso si no es lo mismo que el directorio del archivo al que está accediendo.

0

Acabo de tener este problema y primero cambié a otro directorio y luego volví a encender y el problema se solucionó.

5

Tuve que combinar las respuestas de Maiasaura y Svun para que funcione: usar setwd y escapar de todas las barras y espacios.

setwd('C:\\Users\\firstname\ lastname\\Desktop\\folder1\\folder2\\folder3') 
data = read.csv("file.csv") 
data 

Esto resolvió el problema para mí.

0

Mi problema era muy simple, el directorio de trabajo no era el directorio "Fuente" que se imprimió cuando se ejecutó el archivo. Para solucionar esto, puede usar getwd() y setwd() para hacer que sus enlaces relativos funcionen, o simplemente usar una ruta completa al abrir el csv.

print(getwd()) # Where does the code think it is? 
setwd("~/Documents") # Where do I want my code to be? 
dat = read.csv("~/Documents/Data Visualization/expDataAnalysis/one/ac1_survey.csv") #just make it work! 
Cuestiones relacionadas