これが以前に尋ねられた場合は申し訳ありませんが、答えを見つけることができません。
Rで小さな関数を書いたとしましょう
add2<-function(a){
return(a+2)
}
これをadd2.Rとしてホームディレクトリ(または任意のディレクトリ)に保存します。 Rにそれを見つけるにはどうすればよいですか?
> add2(4)
Error: could not find function "add2"
スクリプトを開いて、コンソールにコピーして貼り付け、実行すると、機能します。しかし、どのようにしてそれを組み込みますか?それで、Rを開いたり閉じたりしても、それをコピーして貼り付けなくても実行できますか?
1つの軽量オプション:
_dump("add2", file="myFunction.R")
## Then in a subsequent R session
source("myFunction.R")
_
代替:
_save("add2", file="myFunction.Rdata")
## Then just double click on "myFunction.Rdata" to open
## an R session with add2() already in it
## You can also import the function to any other R session with
load("myFunction.Rdata")
_
関数を独自のプライベートパッケージにパッケージ化して整然とした形で格納する準備ができるまでは、source()
- readyテキストファイル(上記の最初の例のように)がおそらく最良の戦略です。経験豊富なuseRがこのアプローチを実践する方法の例については、 これは非常に高い投票SO質問 を参照してください。
自動的に起動する場合は、起動スクリプトを設定してから、上記の回答で概説した方法のいずれかを使用する必要があります。
/Library/Frameworks/R.framework/Versions/2.15/Resources/etc/は(Macの場合)Rprofile.siteの場所であり、適切に編集する必要があります。
それの私のバージョンは:
.First <- function()
{
dir='~/Desktop/Infobase/R/0_init/0_init.R'
if(file.exists(dir))
{
source(dir, chdir = TRUE)
} else {cat("startup file is not found at:",dir)}
cat("\nWelcome at", date(), "\n")
}
.Last <- function()
{
cat("\nGoodbye at ", date(), "\n")
}
1 Rスクリプトを入手した後は、このファイルを入力する必要はありません。入手したファイルから必要なことをすべて実行してください。私の場合、ファイル「0_init.R」には関数が含まれていません。他のスクリプトのロードが含まれているだけです。さて、あなたはアイデアを持っています。
また、これを行っている場合は、新しい環境に保管することをお勧めします。実際の環境は、独自の機能にはあまり適していません(パッケージを開発している場合は、より適切に実装できます。そうでない場合は、多くの制御が失われます)。
「attach」、「detach」、「search」などを使用します。
attach(FUN,name="af2tr")
関数を呼び出す前に(スクリプトの最初など)、ユーザー定義関数を含むファイルをsource
する必要があります。つまり、
source("add2.R") # this executes add2.R script loading add2 function
基本的に、source
関数は、引数として渡されたスクリプトに含まれているコードを実行します。したがって、ファイルに関数定義のみが含まれている場合は、将来使用するために関数をメモリにロードします。