2009-09-08 28 views
20

Uso R in Windows su più macchine.Come ottenere R per riconoscere la directory di lavoro come directory di lavoro?

So che è possibile impostare la directory di lavoro all'interno di uno script R, come questo

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

... ma allora questo rompe la portabilità dello script. E 'anche fastidioso dover invertire tutte le barre (a partire da Windows ti dà backslash)

C'è un modo per iniziare R in una particolare directory di lavoro in modo che non c'è bisogno di fare questo a livello di sceneggiatura?

risposta

14

È necessario copiare il collegamento a R (R.lnk file) nella cartella desiderata. Quindi in "Proprietà" (tasto destro del mouse -> ultima opzione) cancellare qualcosa nel campo "Inizia in ..." nella seconda scheda ("Collegamento"?). Se si avvia R con questa directory di lavoro di scelta rapida sarà quella in cui si trova il collegamento.

Non ho la versione inglese di Windows, quindi non sono sicuro dei nomi dei campi, ma dovrebbero essere facili da trovare.

domande simili erano in R-finestre-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?

In 2.14 è detto che

La directory di lavoro è la directory da cui Rgui o Rterm è stato lanciato, a meno che non sia stato usato un collegamento quando è dato dal campo "Inizia in" delle proprietà del collegamento.

3

Se si utilizza Emacs/ESS, questo non è un problema. Navigo nella directory in cui si trova il mio script R, lo apro, quindi avvio un processo RES. Una console R si apre con la directory corrente come directory di lavoro di R.

Se non si è convertito in Emacs/ESS, lo consiglio. (Anche se per prevenire una guerra di fiamme, noto anche che ci sono opzioni simili per gli utenti di Vi.)

La speranza che aiuta.

6

È possibile utilizzare una variabile ambientale. Questo può funzionare con Sys.getenv() e Sys.setenv(). Per esempio:

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

Se hai inviato la variabile nello script, si dovrebbe essere in grado di accedervi dal di dentro, e quindi chiamare setwd() su quella uscita.

+0

Do le variabili ambientali fissati in questo modo tutte le sessioni R]? Che ne dici di riavvio completo del computer? – eykanal

+0

No, ma lo farà se lo aggiungi nel tuo file .Rprofile. In alternativa, è possibile ottenere variabili di sistema dal sistema operativo (ad esempio in Windows, è possibile memorizzare valori nelle variabili di ambiente). – Shane

5

Salva il tuo spazio di lavoro nella directory desiderata e successivamente apri lo spazio di lavoro da Esplora risorse.

3

Solo un dettaglio: invece di invertire le barre come dici tu, basta aggiungere un altro backslash. Due di questi \\ funzionano allo stesso modo di uno di questi /. Questo lo rende almeno un po 'più facile.

+0

+1 Ehva: questo è il modo più semplice quando si lavora con la semplice vecchia R e si desidera impostare la directory di lavoro solo una volta. – PavoDive

4

Ho messo la riga seguente davanti ai miei script e mi permette di lavorare sui miei computer.

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

dove ~ è = nella home directory.

Sys.setenv(HOME = "path") o Sys.setenv(R_USER = "path") possono entrambi impostare la directory principale.

Nel mio caso, lavoro su più finestre, ognuna con strutture di directory abbastanza diverse, ma impostando correttamente la directory home posso sincronizzare il codice tra i computer e farli funzionare correttamente su ognuno da dove eseguo i miei progetti R avere strutture di directory simili.

-1

Inserisci una scorciatoia per il gui R nella directory desiderata. Fare clic con il tasto destro e osservare le proprietà di collegamento. Elimina la voce per "Inizia in" e fai clic su OK. Quando avvii il gui R da questo collegamento, la directory predefinita sarà la cartella da cui hai lanciato. Copia/incolla questa scorciatoia ovunque desideri.

+0

Qual è la differenza tra la tua e la mia risposta? – Marek

1

Per Ubuntu:
Inserire il seguente comando nel vostro .Rprofile del file (di solito nella vostra home directory):

setwd(Sys.getenv("PWD")) 

Ora la vostra directory di lavoro predefinita sarà qualunque directory è stato lanciato da R. Tenere presente che è anche possibile impostare aree di lavoro predefinite in directory diverse salvando l'immagine dell'area di lavoro come .RData ovunque si preveda di avviare R (origini di avvio .Rprofile prima di cercare .Rdata nello cwd).

0

Per impostare la directory di lavoro R come la directory corrente dello script R che sto lavorando, ho sempre utilizzare una combinazione dei comandi getwd() e setwd(), in questo modo:

path <- getwd() setwd(path)

o

setwd(getwd())

Se vuoi saperne di più, vedono questo article.

Cheers,

[s '

Problemi correlati