我的R安裝過程中的默認庫 C:\Users\mmstat\Documents\R\win-library\3.3\
調用功能,而不會複製到腳本窗口
我也有保存在第二個文件夾.txt擴展名的功能 c:\S library\
我的問題是,我不不知道如何告訴R關於我的函數庫的'S庫',所以我不必在腳本窗口中複製和粘貼想要的函數的代碼,然後執行它。
我該怎麼做?
我的R安裝過程中的默認庫 C:\Users\mmstat\Documents\R\win-library\3.3\
調用功能,而不會複製到腳本窗口
我也有保存在第二個文件夾.txt擴展名的功能 c:\S library\
我的問題是,我不不知道如何告訴R關於我的函數庫的'S庫',所以我不必在腳本窗口中複製和粘貼想要的函數的代碼,然後執行它。
我該怎麼做?
只給最簡單的基本-R回答:
fList <- list.files(path="c:/S library/",pattern="*.txt")
lapply(fList,source)
注意:我沒有窗口,所以路徑可能需要一些編輯才能在您自己的系統上正常工作。
NB 2:您可能需要將文件的擴展名從.txt更改到.R
,如果你想創建/使用它作爲一個包,你可以給一個嘗試將modules包。它是在考慮到python用戶的情況下構建的。
如果您經常使用這些功能,我會建議添加到您的.Rprofile變量以及(對於基於Unix的系統,它通常是:〜/ .Rprofile,不知道對於Windows)
import.path='c:/S library/' #Based on Ben Bolker recommendation
如果你不想或不能修改你的個人資料,你也可以在R內完成(但你需要每次都這麼做)。
然後在R:
#only the first time and if you want to update later on.
require(devtools) ## you will need to install it if you don't have it already
devtools::install_github('klmr/modules')
然後每次要使用它,它會是這樣,如下所示:
library(modules)
options(import.path="c:\\S library\\")
Slib=import('nameOftextFile')#example myFun
and then you can use it:
foo=Slib$myFun(arg1,arg2,)
請了一個更好的解釋看documentation。
Windows路徑中的反斜槓需要加倍/保護('import.path =「c:\\ S library \\」)'(但更容易使用正斜槓,R理解)。我不明白你爲什麼需要更改擴展名... –
謝謝。所有評論真的有幫助 –
@BenBolker真的,你可能不需要改變擴展名,我只是建議它,因爲前一段時間我因爲我的文件的擴展名而導入函數有問題。 (我不記得是什麼庫了)。 – Mitra
您可以將源文件或如果他們被打散,源特別是那些文件。您可能必須將擴展名更改爲.R。此外,如果您想爲每個會話加載這些功能,則會在SO上發佈如何在您的配置文件中執行此操作的信息。 – lmo
您也可以使用Rutils中的'sourceDirectory'來獲取目錄中的所有內容。您也可以添加模式過濾器。這就是說,更清潔的選擇將包裝你的功能..一個包。 –
有趣。我將嘗試使用源目錄 –