更新:以前的标题是,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 通过值传递意味着将整个对象内容复制到函数参数。但看起来我并不完全正确。谁能解释发生了什么?