2009-11-21 53 views
0

我在超級用戶問這個問題,但有人建議我把它放在這裏,因爲有更多的R專家。讓R來存儲每個會話的工作目錄

問題:

當我進入File> Change dir ...時,我不得不導航到我的目錄,這特別討厭。

有誰知道如何讓R記得以前用過的目錄?

+1

雖然這是一個最終用戶類型問題而不是編程問題,但關於R的問題可能會得到更多更好的答案1)如果它們發佈在Stack Overflow上,並且2)如果它們被標記爲「R 」。 – las3rjock 2009-11-06 03:29:01

+1

對我來說,你總是希望它在同一個地方,這似乎很奇怪。對於每個項目,您通常都有一個不同的目錄。 – hadley 2009-11-21 13:47:59

+1

完全重複:http://stackoverflow.com/questions/1689116/getting-r-to-remember-previous-directory – Shane 2009-11-22 02:38:31

回答

1

我可以不回答你的問題,因爲這是一個有點模糊,但有些想法:

  1. 您可以將R中的.GlobalEnv「我的目錄」的位置,以便當你開始從那裏開始R.
  2. This article討論如何讓不同的工作目錄與相應的不同的「.RData」文件。
  3. 你可以寫你之前設置新目錄

    cd <- function(x = "") { 
        logical (length = 0) 
        if (!is.logical(x)) {  
         cwd <- getwd() 
         Sys.setenv("R_OLDWD"=cwd) 
         setwd(x)  
         } else { 
         setwd(print(paste(Sys.getenv("R_OLDWD")))) 
        } 
    } 
    

R for Windows FAQ可以記住當前目錄中的自定義函數:

工作目錄是目錄從RGUI或Rterm已啓動,除非在快捷方式屬性的「開始」字段中給出快捷方式時才使用該快捷方式。您可以通過調用getwd()從R代碼中找到它。

主目錄設置如下:如果設置了環境變量R_USER,則使用它的值。否則,如果設置了環境變量HOME,則使用其值。在這兩個用戶可控設置之後,R會嘗試查找系統定義的主目錄。它首先嚐試使用Windows「個人」目錄(通常爲Windows XP上的C:\ Documents and Settings \用戶名\我的文檔和Vista上的C:\ Users \ username \ Documents)。如果失敗,如果同時設置了兩個環境變量HOMEDRIVE和HOMEPATH(並且它們通常是),則值爲$ {HOMEDRIVE} $ {HOMEPATH}。如果所有這些失敗,則使用當前的工作目錄。

您可以通過Sys.getenv(「R_USER」)的R代碼找到它。

4

我將與特定項目關聯的所有代碼都保存在一個文件中(或者更常見的是一系列文件)。第一行通常是

setwd(...) 

設置目錄。

將工作區保存到所需目錄後,只需打開該工作區(而不是從桌面或開始菜單)即可啓動R。然後該目錄已經設置到你想要的地方。

0

我使用StatET和Eclipse作爲我的R用戶界面。它會自動將工作目錄設置爲我的項目文件夾的位置。 workspace = $ {project_loc}。 當從特定項目啓動R時,它也會自動加載任何保存的工作區。

0

在Windows上,我從code.google.com/p/batchfiles中的一個文件Rgui.bat放在我的項目目錄中,並使用它啓動R.

1

這取決於您使用的系統。有幾個技巧可以使用,但是如果你想從系統菜單運行R並讓它記住目錄,那麼快速回答是不會發生的。 Linux非常簡單,只需先導航到終端中的目錄,即可解決問題。我不知道蘋果電腦,但我可以廣泛地談論Windows。首先,如果您導航到該目錄並保存一次工作空間,則可以使用保存的.RData文件雙擊並恢復包括當前目錄在內的工作空間。我個人的和有偏見的觀點是,當你產生一個Rgui窗口,你從當前腳本繼承活動目錄時,使用編輯器Notepad++NppToR。它還提供了一個菜單命令來將工作目錄調整到當前腳本的目錄。

另一點是您可以隨時在任何平臺上的任何R會話中使用setwd("path/to/dir/")命令設置工作目錄。