2012-04-25 148 views
1

我需要與沒有任何命令行經驗的同事共享我的數據和R源文件。此外,我在Linux下工作,而她在Windows下工作。但她想更改一些常量並重新計算腳本。所以,如果她只需雙擊R源文件並且R將在源文件和數據文件所在的相同目錄中執行,那將很酷。我想到了設置使用Windows資源管理器在源代碼目錄中啓動R

Rscript -e "source(\"%1\",chdir=TRUE)" 

在註冊表中的關聯鍵,但文件名(%1)將包含R將無法處理反斜槓。

另一種方法是將setwd()轉到我的腳本開頭的源代碼目錄,但是我不知道如何獲取它。 AFAIK,argv[0]將是R.exe,而不是source.R

使用GUI不是很方便,因爲它需要單獨更改目錄然後加載腳本。

我必須爲此編寫一個R加載器(exe或cmd)嗎?

+0

你可以嘗試我使用的方法;看到底部http://stackoverflow.com/questions/10098189/disable-saving-history/10103274#10103274 – 2012-04-25 06:55:44

+0

我很困惑:通常R轉換Windows反斜槓(內部),並正確地遵循目錄路徑。你確定它失敗了?接下來讓我問:你可以通過在她的'.Rprofile'文件中設置PATH環境值並使用'file.path'來完成你想要的操作嗎? – 2012-04-25 11:07:18

+0

這裏是一個[可能有幫助的答案](http://stackoverflow.com/a/9132685/210673) – Aaron 2012-04-25 13:32:10

回答

2

幾個提示,作爲一個白天在Windows上工作的人,以及在夜間使用Mac OS。我在兩臺機器共有的Dropbox文件夾中創建我的項目。我遵循這個工作慣例。

我在兩臺機器上都使用RStudio。我通過在本地右鍵單擊腳本文件來啓動RStudio,並將工作目錄設置爲正在打開的文件。如果我再繼續在腳本相對我一切的道路,那麼我可以與自己分享我的項目很容易:)

我通過設置一個全局變量開始我的劇本,在一條線上,看起來傻:

DIR <- getwd() 

然後我在整個其餘腳本中使用相對路徑。用這樣的線條:

new.path <- paste(DIR, "rel-path", "to", "new", "file", sep="/") 

這可以避免我不得不修補每臺機器上的配置文件。它看起來很明顯,但它給了我一個地方改變的情況下,我希望腳本其他地方來看,比如說DIR值,早上

DIR <- "~/workspace/newproject" 

,或者在晚上,

DIR <- "c:/R_workspace/yet/a/different/project" 

我還必須小心,我使用相同的R版本和軟件包,在少數情況下,導致打嗝幾次。

這是一個簡單的流量,但有效的,並允許無縫跨越兩個系統

0

糟糕工作。如果資源管理器不在網絡文件夾中,資源管理器會在源目錄中啓動R.最初我試圖在網絡文件夾上啓動它。因此,唯一要做的就是將文件複製到本地驅動器,或將網絡驅動器映射到一個字母。

相關問題