2017-04-08 88 views
0

我建立了自己的功能,每次需要運行這個功能時,我都需要這麼做。有沒有什麼辦法可以像任何R包一樣自動加載?或者我可以建立一個僅供我使用的R包?如何自動加載我自己的函數作爲R包?

+3

是的,你可以建立一個只供你使用的R包。如果您構建它並且不分發它,那麼您將成爲唯一的用戶。如何建立一個軟件包,可以在Hadley Wickham的偉大着作中找到,可以在線閱讀:http://r-pkgs.had.co.nz/ –

+2

在旁註中,請記住這些非常類似廣泛的問題超出了SO的範圍。查看這些信息,試用一下,如果它沒有按計劃運行,請回來一個特定的問題,包括一個代碼示例。現在回答你的問題,我們需要寫一本書。 –

+0

謝謝你的幫助。我讀了很多,並在谷歌搜索了三天。我發現的所有想法都是爲了包裝,然後我們需要按照我的理解進行分發。因此,從您的第一條評論中,我明白我可以構建我的包並且不需要分發它。再次感謝。 –

回答

0

會推薦Nate Days解決方案,但您也可以使用Rs save()load()函數來執行此操作。它適用於所有R對象,並將它們存儲在binay .rda文件中。您也可以存儲多個對象。

嘗試:

add <- function(x, y){return(x+y)}

save(add, file = 'add_function.rda')

每當你需要你的函數,這樣做:

load('add_function.rda')

而且add()將在父環境中可用。

-2

有一個上CRAN稱爲pkgmaker包,有一噸的工具和實用程序,爲您打造您自己的包。作爲備選方案,您可以考慮爲您創建一個functions.R腳本,以存儲您所有的個人創建和常用功能。您可以將source('functions.R', local=TRUE)行添加到您的程序,腳本或應用程序中,並且您的功能將可供您使用。這就是我如何處理這個問題。乾杯

+0

'pkgmaker'是一個用於包開發的低級工具的工具集。軟件包建設的主要工具是Windows上的Rtools(不是軟件包),軟件包'devtools',一些基本功能,比如'package.skeleton',因爲'devtools','roxygen2'和其他軟件很少被使用併入RStudio。 只有將函數放置到全局環境中才能覆蓋該函數。所以這也不是一個解決方案。 –