Aktualizacja: Poprzedni tytuł był Is there any specific way to pass data frame as an argument to a function?
, ale to nie było właściwe pytanie według genialnych gości tutaj. Oryginalny wpis znajduje się poniżej.Jak uruchomić efekt wykresu wewnątrz funkcji R
Kiedy wpadłem następujących funkcji z 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))
}
mam błąd.
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
Ale jeśli ręcznie wykonany
library(effects)
library(lme4)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
plot(effect("Days",fm8))
nie dostałem żadnego błędu.
Myślałem, że R przechodzi przez wartość oznaczającą skopiowanie całej treści obiektu do argumentu funkcji. Ale wygląda na to, że nie miałem do końca racji. Czy ktoś może wyjaśnić, co się dzieje?
Nie sądzę, że problem jest argumentem za przepuszczanie R semantykę, myślę, że problemem jest to, że jest 'effect' próbuje "eval" model dopasowania połączenia w niewłaściwym miejscu. Lub przynajmniej miejsce, które powoduje, że nie działa po uruchomieniu wewnątrz funkcji. – joran
@RicardoSaporta Days. Przepraszamy za literówki. Naprawiłem to w moim pytaniu. Dzięki! –
@joran Widzę. Jak szybko to zrozumiałeś? :-) No cóż. Chyba nadszedł czas, aby skontaktować się z autorem. Dzięki za pomoc! –