Ich verwende das Paket , um Modelle an mehrere Datensätze anzupassen. Alles funktioniert, wenn ich jeweils einen Datensatz packe.Warum kann ich ein Dataset nicht an eine Funktion übergeben?
So zum Beispiel:
output <- glmulti(y~x1+x2,data=dat,fitfunction=lm)
funktioniert gut.
Allerdings, wenn ich eine Wrapper-Funktion wie so erstellen:
analyze <- function(dat)
{
out<- glmulti(y~x1+x2,data=dat,fitfunction=lm)
return (out)
}
einfach nicht funktioniert. Der Fehler, den ich bekomme, ist
error in evaluating the argument 'data' in selecting a method for function 'glmulti'
Es sei denn, es gibt einen Datenrahmen namens dat, es funktioniert nicht. Wenn ich results=lapply(list_of_datasets, analyze)
verwende, funktioniert es nicht. Also was gibt es? Ohne meinen besagten Wrapper kann ich keine Liste von Datensätzen durch diese Funktion plat- zieren. Wenn jemand Gedanken oder Ideen darüber hat, warum dies geschieht oder wie ich es umgehen kann, wäre das großartig.
Beispiel 2:
dat=list_of_data[[1]]
analyze(dat)
funktioniert gut. In gewisser Weise ignoriert es das Argument und sucht buchstäblich nach einem Datenrahmen namens dat. Es verhält sich gleich, egal wie ich es nenne.
Dank eine Tonne Joris. Ich muss mich wirklich hinsetzen und S4-Methoden anwenden. Zumindest kann ich jetzt sehen, wie sich diese Problemumgehung verhält. Prost. – Maiasaura
Es verhält sich gut, solange Sie in Ihrem Arbeitsbereich kein Objekt namens "dat" haben. Wenn dies der Fall ist, wird dieser durch die Funktion assign() überschrieben. Das ist etwas, was du unbedingt vermeiden willst ... –
Nicht die S4 und .GlobalEnv wieder: Schlag auf die Stirn :. –