[程式] R source原始碼的問題

看板Statistics作者 (拒看低質媒體)時間14年前 (2012/02/26 12:42), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
------------------------------------------------------------------------ [軟體程式類別]: 請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等 R [程式問題]: 資料處理、迴歸、敘述統計、logistic、probit...等 載入既有的程式碼 [軟體熟悉度]: 請把以下不需要的部份刪除 高(1年以上) [問題敘述]: 請詳盡敘述遭遇到的問題,可能的話,分點敘述你要處理的流程 大家好, 我最近在寫程式的時候發現使用R 的source有以下的狀況: 我的工作目錄有 workspace/ 和 workspace/src/ 當我把A.R, B.R 放在 workspace/src/資料夾底下 A.R會用到B.R裡面的東西所以他的內容為 #workspace/src/A.R source("B.R") #... 然後我在workspace/底下有一個程式的主要進入點 exec.R #workspace/exec.R source("A.R") #... 但是這時當R進入A.R後就錯誤了 因為他在parse source("B.R")的時候的根目錄並不會切換到A.R的所在位置 所以我想請問是不是已經有解決這類問題的方案呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.251.202

02/26 12:51, , 1F
把 "A.R" 內 call B.R 的路徑改成 source("./src/B.R")
02/26 12:51, 1F

02/26 12:55, , 2F
不然就是用 system("pwd",intern=T) 自行設定一些路徑問題
02/26 12:55, 2F

02/26 12:56, , 3F
再搭配一些 paste 之類的方式指定路徑
02/26 12:56, 3F
我不喜歡這個方法的理由是 未來只要我想要重複使用A.R, B.R的功能 我必須要重新改一次source的路徑

02/26 13:14, , 4F
file.path可以參考看看...
02/26 13:14, 4F

02/26 21:14, , 5F
全改用相對路徑,從起始目錄source進R不就解了.
02/26 21:14, 5F
後來我想了想其他語言解決類似問題的方式 在PHP內我可以用__DIR__ (取得檔案現在的位置)來解決這個問題 在C內是要把某個資料夾加入到compiler的search path內來解決 --- 所以R的話目前我想到比較漂亮的既有解法是以類似C的概念 把這些檔案都以某個資料夾為中心來交互參照 並且再寫一個source全部檔案的方式 Hmm... 用setwd應該是可以寫一個類似的出來 --- 包package也是一招, 但是滿費功夫的 ※ 編輯: Wush978 來自: 1.170.141.14 (02/26 23:38)
文章代碼(AID): #1FIRWwr0 (Statistics)