2009-09-08 14 views
20

Uso R en Windows en varias máquinas.¿Cómo lograr que R reconozca su directorio de trabajo como su directorio de trabajo?

sé puede establecer el directorio de trabajo desde dentro de un script de R, como este

setwd("C:/Documents and Settings/username/My Documents/x/y/z") 

... pero entonces se rompe la portabilidad de la secuencia de comandos. También es molesto tener que invertir todas las barras diagonales (dado que Windows le da barras invertidas)

¿Hay alguna manera de iniciar R en un directorio de trabajo particular para que no tenga que hacer esto en el nivel de script?

Respuesta

14

Debe copiar el acceso directo al R (archivo R.lnk) en la carpeta deseada. Luego, en "Propiedades" (botón derecho del mouse -> última opción), elimine cualquier cosa en el campo "Comenzar en ..." en la segunda pestaña ("Acceso directo"?). Si inicia R con este acceso directo, el directorio de trabajo será aquel en el que se encuentre el acceso directo.

No tengo la versión en inglés de Windows, así que no estoy seguro acerca de los nombres de los campos, pero deberían ser fáciles de encontrar.

preguntas similares fueron en I-ventanas-FAQ:

2.5 How do I run it?

2.10 How can I keep workspaces for different projects in different directories?

2.14 What are HOME and working directories?

En 2.14 se menciona que

El directorio de trabajo es el directorio de que Rgui o se lanzó Rterm, a menos que se haya utilizado un acceso directo cuando se lo asigna el campo "Comenzar en" de las propiedades del acceso directo.

3

Si está utilizando Emacs/ESS, esto no es un problema. Navego al directorio donde se encuentra mi script R, lo abro y luego comienzo un proceso R ESS. Aparece una consola R con el directorio actual como el directorio de trabajo de R.

Si no ha convertido a Emacs/ESS, lo recomiendo. (Aunque para evitar una guerra de llamas, también noto que hay opciones similares para los usuarios de Vi.)

Espero que ayude.

6

Podría usar una variable de entorno. Esto puede funcionar con Sys.getenv() y Sys.setenv(). Por ejemplo:

> Sys.setenv(R_TEST="testit") 
> Sys.getenv("R_TEST") 
    R_TEST 
"testit" 

Si después de enviar la variable en la secuencia de comandos, usted debería ser capaz de acceder a él desde el interior, y luego llamar a setwd() en esa salida.

+0

persisten las variables ambientales establecidos de esta manera a través de sesiones R]? ¿Qué hay de la computadora completa reinicia? – eykanal

+0

No, pero lo hará si agrega esto en su archivo .Rprofile. Alternativamente, puede obtener variables del sistema desde el sistema operativo (por ejemplo, en Windows, puede almacenar sus valores en variables de entorno). – Shane

5

Guarde su espacio de trabajo en el directorio deseado y, a continuación, abra el área de trabajo desde el explorador de Windows.

3

Solo un detalle: en lugar de invertir las barras tal como dices, simplemente agrega otra barra inclinada invertida. Dos de estos \\ funcionan de la misma manera que uno de estos /. Eso lo hace al menos un poco más fácil.

+0

+1 Ehva: Esta es la manera más fácil cuando trabajas en la antigua R simple y quieres configurar tu directorio de trabajo solo una vez. – PavoDive

4

Pongo la siguiente línea delante de mis scripts y me permite trabajar en mis computadoras.

setwd(path.expand("~/path/to/working/directory/")) 

donde ~ es = a su directorio de inicio.

Sys.setenv(HOME = "path") o Sys.setenv(R_USER = "path") pueden establecer el directorio de inicio.

En mi caso, trabajo en varios cuadros de Windows, cada uno tiene estructuras de directorios bastante diferentes, pero estableciendo el directorio de inicio correctamente puedo sincronizar el código entre computadoras y ejecutarlas correctamente en cada una de ellas, ya que ejecuto mis proyectos de R tienen estructuras de directorios similares.

-1

Ponga un acceso directo para el R gui en su directorio deseado. Haga clic derecho y observe las propiedades de acceso directo. Elimine la entrada de "Iniciar en" y haga clic en Aceptar. Cuando inicie la R gui desde este acceso directo, el directorio predeterminado será la carpeta desde la que se inició. Copie/pegue este atajo donde lo desee.

+0

¿Cuál es la diferencia entre tu y mi respuesta? – Marek

1

Para Ubuntu:
Introduzca el siguiente comando en el archivo de .Rprofile (por lo general en su directorio principal):

setwd(Sys.getenv("PWD")) 

Ahora su directorio de trabajo predeterminado será el directorio que se puso en marcha a partir de R. Tenga en cuenta que también puede configurar espacios de trabajo predeterminados en directorios diferentes guardando su imagen de área de trabajo como .RData donde quiera que vaya a ejecutar R (fuentes de inicio .Rprofile antes de buscar .Rdata en el cwd).

0

para establecer el directorio de trabajo R como el directorio actual de la secuencia de comandos R que estoy trabajando, siempre uso una combinación de los comandos getwd() y setwd(), así:

path <- getwd() setwd(path)

o

setwd(getwd())

Si desea obtener más información al respecto, ver este article.

Saludos,

[ 's

Cuestiones relacionadas