2016-07-15 24 views
1

我的R安裝過程中的默認庫 C:\Users\mmstat\Documents\R\win-library\3.3\調用功能,而不會複製到腳本窗口

我也有保存在第二個文件夾.txt擴展名的功能 c:\S library\

我的問題是,我不不知道如何告訴R關於我的函數庫的'S庫',所以我不必在腳本窗口中複製和粘貼想要的函數的代碼,然後執行它。

我該怎麼做?

+0

您可以將源文件或如果他們被打散,源特別是那些文件。您可能必須將擴展名更改爲.R。此外,如果您想爲每個會話加載這些功能,則會在SO上發佈如何在您的配置文件中執行此操作的信息。 – lmo

+0

您也可以使用Rutils中的'sourceDirectory'來獲取目錄中的所有內容。您也可以添加模式過濾器。這就是說,更清潔的選擇將包裝你的功能..一個包。 –

+0

有趣。我將嘗試使用源目錄 –

回答

2

只給最簡單的基本-R回答:

fList <- list.files(path="c:/S library/",pattern="*.txt") 
lapply(fList,source) 
1

注意:我沒有窗口,所以路徑可能需要一些編輯才能在您自己的系統上正常工作。

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

+0

Windows路徑中的反斜槓需要加倍/保護('import.path =「c:\\ S library \\」)'(但更容易使用正斜槓,R理解)。我不明白你爲什麼需要更改擴展名... –

+0

謝謝。所有評論真的有幫助 –

+0

@BenBolker真的,你可能不需要改變擴展名,我只是建議它,因爲前一段時間我因爲我的文件的擴展名而導入函數有問題。 (我不記得是什麼庫了)。 – Mitra

相關問題