更新:以前的標題是Is there any specific way to pass data frame as an argument to a function?
,但根據這裏的傑出人物,這是不正確的問題。原文是在下面。如何在R功能中運行效果圖
當我跑在與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通過值意味着將整個對象內容複製到函數參數。但看起來我並不完全正確。任何人都可以解釋發生了什麼?
我不認爲這個問題爲R的參數傳遞語義,我認爲這個問題是'effect'是試圖在錯誤的地方「評估」模型擬合調用。或者至少,在函數內部運行時導致它無法工作的地方。 – joran 2013-04-08 17:42:27
@RicardoSaporta天。對不起,錯別字。我在我的問題中解決了它。謝謝! – 2013-04-08 17:43:38
@joran我明白了。你是怎麼解決這個問題的? :-) 好吧。我想現在是時候聯繫作者了。謝謝你的幫助! – 2013-04-08 17:48:55