Directorio de trabajo en R

Introducción a R Conceptos básicos de R
Comprueba o establece el directorio de trabajo con las funciones setwd y getwd

El directorio de trabajo en R es la carpeta en la que estás trabajando. En consecuencia, es la ruta donde se guardarán tus objetos de R y el entorno donde tienes que almacenar los archivos de tu proyecto para poder cargarlos directamente.

¿Cómo saber el directorio de trabajo en R?

La función getwd

Para comprobar cuál es el directorio de tu sesión de R puedes ejecutar la función getwd, que imprimirá la ruta del directorio de trabajo actual. Por tanto, la salida es la carpeta donde se guardarán todos tus archivos.

# Imprime la ruta del directorio de trabajo
getwd()

¿Cómo cambiar el directorio de trabajo en R?

La función setwd

Para cambiar el directorio de trabajo simplemente ejecuta la función setwd y pasa como argumento la ruta de la carpeta que quieres como nuevo directorio de trabajo.

# Establecer la ruta del directorio
setwd("Mi\Ruta")
setwd("Mi/Ruta") # Equivalente

Si no consigues cambiar el directorio de trabajo recuerda usar ‘\\’ o ‘/’ en lugar de ‘\’ al escribir la ruta.

Cuando copias la ruta de un directorio, es habitual que las carpetas del directorio se separen mediante una barra invertida (\). Si pegas directamente esta ruta el directorio no se cambiará y la función anterior dará un error.

Existen opciones si no quieres cambiar la barra manualmente para evitar este error:

Por una parte, se podría hacer uso de la función back2ForwardSlash del paquete sos de la siguiente manera:

library(sos)
x <- back2ForwardSlash()
# (Escribe o pega la ruta del directorio)
setwd(x)

Por otra parte, desde R 4.0.0 se puede escribir algo como lo que sigue:

 setwd(r"(MiRuta)")

Definir el directorio de trabajo en RStudio

Ve a Session → Set Working Directory y selecciona la opción que prefieras. Puedes elegir entre el directorio del proyecto, el directorio del archivo en el que estés, la localización de los archivos en el panel de archivos o elegir un directorio personalizado.

Cambiar directorio de trabajo en R

Error: no es posible cambiar el directorio de trabajo

Existen varias razones por las que quizás no seas capaz de cambiar el directorio de trabajo. Te recomendamos lo siguiente para solventar las más comunes:

  • Comprueba que no hayas escrito mal la ruta.
  • Asegúrate de que el directorio no contenga caracteres inválidos, como acentos.
  • Asegúrate de que tienes permisos de administrador.
  • Utiliza la barra invertida doble o la barra simple.

Crear un proyecto en RStudio

Los proyectos de RStudio son muy útiles para organizar nuestros scripts en carpetas. De esta forma, al abrir un proyecto éste contendrá todos los archivos correspondientes al mismo. Además, la carpeta del proyecto se establecerá como directorio de trabajo al abrirlo, de modo que todo lo que guardes se guardará en la carpeta del proyecto.

Para crear un nuevo proyecto ve a File → New Project y crea un nuevo proyecto desde un nuevo directorio (New Directory) o desde un directorio existente (Existing Directory).

Alternativas para crear un nuevo proyecto en RStudio

Si seleccionaste la opción New Directory tendrás que seleccionar New Project y luego escribir un nombre y una ruta de proyecto.

Nuevo proyecto en RSudio menú

Una vez hecho, se creará un archivo .Rproj y, como ya se ha mencionado, podrás tener un proyecto con todos tus archivos sin necesidad de establecer un directorio de trabajo cada vez que abras R.

Crear una carpeta dentro del directorio de trabajo

Después de configurar tu directorio de trabajo, puedes crear una nueva carpeta con la función dir.create dentro del directorio principal. Por ejemplo, puedes crear un nuevo directorio, establecerlo como nuevo directorio de trabajo y volver al directorio principal de la siguiente manera:

# Guarda el directorio actual
old_wd <- getwd()

# Crea una nueva carpeta
dir.create("nueva_carpeta")

# Ve a la nueva carpeta
setwd(paste0(getwd(),"/nueva_carpeta"))

# (Continúa con tu trabajo)

# Vuele al directorio principal
setwd(old_wd)

También puedes crear carpetas anidadas con el argumento recursive y la función file.path. Daremos una explicación más detallada de la función file.path en la sección correspondiente.

# Crea una nueva carpeta dentro de otra
dir.create(file.path("carpeta", "subcarpeta"), recursive = TRUE)

Borrar carpeta dentro del directorio

Si necesitas eliminar una carpeta puedes usar la función unlink. Cabe destacar que si el argumento recursive se establece como TRUE se eliminarán todos los archivos dentro de la carpeta seleccionada. Por ejemplo, para borrar la carpeta creada en la sección anterior y su contenido, si lo tuviese, podríamos ejecutar lo que sigue:

unlink("nueva_carpeta", recursive = TRUE)

Listar los archivos del directorio

Una vez configurado el directorio de trabajo, puede que quieras saber qué archivos están dentro de él. Para ello, basta con llamar a las funciones dir o list.files tal y como se ilustra en el siguiente ejemplo.

dir()
list.files() # Equivalente

Crear un archivo nuevo en el directorio

Si necesitas crear un nuevo archivo R dentro de tu directorio de trabajo puedes utilizar la función file.create y especificar el nombre del nuevo archivo de la siguiente manera:

# Creando un archivo R nuevo
file.create("nuevo_archivo.R")

Nótese que este comando no se usa habitualmente, ya que se puedes presionar Ctrl + Shift + n en RStudio o simplemente crear un nuevo archivo manualmente. El uso principal de esta función es crear archivos nuevos en lote cuando se trabaja en un proyecto grande.

Borrar archivo del directorio de trabajo

De manera similar a la creación de un archivo, puedes eliminar o borrar un archivo dentro de tu directorio con la función file.remove escribiendo:

# Borrando el archivo 'nuevo_archivo.R'
file.remove("nuevo_archivo.R")

Obtener la ruta e información sobre un archivo

También se puede comprobar la ruta de un archivo con la función file.path y obtener información sobre algún archivo con la función file.info.

# Creamos un archivo
file.create("mi_archivo.R")

# Ruta del archivo
file.path("mi_archivo.R")

# Información sobre un archivo
file.info("mi_archivo.R")
            size  isdir  mode         mtime               ctime               atime        exe
mi_archivo.R  0    FALSE  666  2020-03-22 16:02:54 2020-03-22 16:02:54 2020-03-22 16:02:54  no

Copiar archivos de tu directorio de trabajo

Por último, si es necesario, también puedes copiar y renombrar un archivo R en tu directorio. Para ello, utiliza la función file.copy. Como ejemplo, puedes copiar el archivo llamado ‘mi_archivo.R’ y renombrar la copia como ‘mi_archivo_copiado.R’.

file.copy("mi_archivo.R", "mi_archivo_copiado.R")