更新:以前のタイトルはIs there any specific way to pass data frame as an argument to a function?
、ここの優秀な人によると、正しい質問ではありませんでした。元の投稿は以下です。
で次の関数を実行したときsomefunc(sleepstudy)
、
somefunc<-function (dataLme)
{
library(effects)
library(lme4)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), dataLme,
REML = 0, verbose = TRUE)
plot(effect("Days",fm8))
}
エラーが発生しました。
Error in plot(effect("Days", fm8)) :
error in evaluating the argument 'x' in selecting a method for function 'plot': Error in is.data.frame(data) : object 'dataLme' not found
しかし、手動で実行した場合
library(effects)
library(lme4)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
plot(effect("Days",fm8))
エラーは発生しませんでした。
R は、オブジェクトの内容全体を関数の引数にコピーすることを意味する値渡しだと思いました。しかし、私は完全に正しくなかったようです。誰が何が起こっているのか説明できますか?