Warum kann ich einen Datensatz nicht an eine Funktion übergeben?

Ich benutze das Paket glmulti, um Modelle an mehrere Datensätze anzupassen. Alles funktioniert, wenn ich jeweils einen Datensatz anpasse.

So zum Beispiel:

output <- glmulti(y~x1+x2,data=dat,fitfunction=lm) 

works ganz gut.

Allerdings, wenn ich eine Wrapper-Funktion wie folgt erstelle:

analyze <- function(dat)
{
out<- glmulti(y~x1+x2,data=dat,fitfunction=lm)
return (out)
}

simply funktioniert nicht. Der Fehler, den ich erhalte, ist

error in evaluating the argument 'data' in selecting a method for function 'glmulti'

Wenn es keinen Datenrahmen mit dem Namen dat gibt, funktioniert er nicht. Wenn ich @ benutresults=lapply(list_of_datasets, analyze), es funktioniert nicht. Also was gibt es? Ohne meinen Wrapper kann ich mit dieser Funktion keine Liste von Datensätzen erstellen. Wenn jemand Gedanken oder Ideen 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 gewissem Sinne ignoriert es das Argument und sucht buchstäblich nach einem Datenrahmen mit dem Namen dat. Es verhält sich genauso, egal wie ich es nenne.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage