Rでいくつかの関数を作成しましたが、それらの関数が必要なときはいつでも、再作成する必要があります。方法と手順を提案して、Rの任意のセッションでこれらの関数を再作成せずに直接使用できるようにしてください。関数を自動的にロードする方法
1
A
答えて
0
私はすべてのセッションで必要な一連の機能を持っています。そのトリックは、それらをあなたの.Firstファイルに追加して、それらが世界中のすべてのセッションに供給されるようにすることです。
:find.first <- function(edit = FALSE, show_lib = TRUE){
candidates <- c(Sys.getenv("R_PROFILE"),
file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"),
Sys.getenv("R_PROFILE_USER"),
file.path(getwd(), ".Rprofile")
)
first_hit <- Filter(file.exists, candidates)
if(show_lib & !edit){
return(first_hit)
}else {
file.edit(first_hit)
}
}
あなたはどこにでも使うスクリプトを言って、あなたの最初のファイルを見つけるため
ヘルパー関数は、あなたがこのようなものが表示されます
# Pop open the first Rprofile file.
find.first(edit = TRUE)
'/のMyStuff/R' であります
##Emacs please make this -*- R -*-
## empty Rprofile.site for R on Debian
##
## Copyright (C) 2008 Dirk Eddelbuettel and GPL'ed
##
## see help(Startup) for documentation on ~/.Rprofile and Rprofile.site
# ## Example of .Rprofile
# options(width=65, digits=5)
# options(show.signif.stars=FALSE)
# setHook(packageEvent("grDevices", "onLoad"),
# function(...) grDevices::ps.options(horizontal=FALSE))
# set.seed(1234)
#.First <- function(){}
#
#
この機能を次のように編集します。
.First <- function(){
all_my_r <- list.files('/mystuff/R', full.names = T,
recursive = T, pattern = ".R$")
lapply(all_my_r, function(i){
tryCatch(source(i), error = function(e)NULL)
})
}
ファイルを保存します。その後、セッションを再開します。
+0
ああ...明白ではなかった場合には#.First –
3
Carlの答えは受け入れられますが、私は個人的にはこれがまさにあなたの関数をパッケージ化し、単純にライブラリとして呼び出すべきだと思っています。
はこれを行うには非常に良い理由があります:(!重点を置いて)
- ドキュメントを が
- 簡単な取り付け(
library(mypackage)
) - 簡単に共有するためのテストや携帯全体のシステム
- レポート内で使いやすい(Rmd/knitr)
- 重複の可能性を減らす
- Rパッケージシステムの学習は、ツールボックスの強力な部分となり、コードを適切に整理することの他の利点が明らかになります。
+0
私はこのメッセージを強く支持します。 –
関連する問題
- 1. iframeをロードすると自動的にスクロールする方法
- 2. UButtonをロード時に自動的に作成する方法
- 3. ハイブにデータを自動的にロードする方法
- 4. CodeIgniter:自分のクラスの静的関数をコントローラにロードする方法は?
- 5. 関数を動的にロードするための関数属性
- 6. 自動的にクラスをロードする
- 7. 自動的にPowerBuilderエクステンションをロードする
- 8. モーダルを動的にロードする方法
- 9. Pythonパッケージを自動ロードする方法
- 10. onload関数を使ってonclickを自動的に作成する方法
- 11. 自動的にロードするクラス()
- 12. Entity Framework関数のインポートを自動的に更新する方法
- 13. mathematicaで関数名を自動的に生成する方法は?
- 14. BPLパッケージ内の関数を動的にロードして呼び出す方法
- 15. Scalaで明示的なクラス引数を取ってクラスメソッドを関数に自動的に変換する方法?
- 16. windbgに自動的に書かれた拡張機能をロードする方法
- 17. 関数を自動的に検出して値を返す方法
- 18. Liquid XMLを自動的にロードしてXML文書を検証する方法
- 19. Apache Spark:Python関数が自動的にシリアライズ
- 20. 自動的にクリックする方法
- 21. 自動的にプッシュする方法
- 22. データベースの行数を自動的に制限する方法は?
- 23. jQuery関数に動的変数を追加する方法
- 24. 関数を何回も自動的に呼び出す方法は?
- 25. applozicフレームワークでチャットのメッセージ/リスティングを自動的に再ロードする方法
- 26. ファイルを正しくロードして自動ロードする方法
- 27. jQuery関数より多くのデータを動的にロードする
- 28. 動的にロードされるコンポーネントの関数を呼び出す
- 29. 起動時にモジュールとオブジェクトファイルを自動的にロードする
- 30. Roslynで.csxを自動的にロード
source()を使用していますか? source()は、パスが正しい場合には関数をロードします –
そして毎回それらを再作成することはどういう意味ですか? –
http://www.statmethods.net/interface/customizing.html – Roland