Utilizzo il pacchetto glmulti per adattarlo a diversi set di dati. Tutto funziona se si adatta un set di dati alla volta.Perché non posso passare un set di dati a una funzione?
Così, per esempio:
output <- glmulti(y~x1+x2,data=dat,fitfunction=lm)
funziona bene.
Tuttavia, se creo una funzione wrapper in questo modo:
analyze <- function(dat)
{
out<- glmulti(y~x1+x2,data=dat,fitfunction=lm)
return (out)
}
semplicemente non funziona. L'errore che ottengo è
error in evaluating the argument 'data' in selecting a method for function 'glmulti'
A meno che non v'è un frame di dati di nome dat, non funziona. Se utilizzo results=lapply(list_of_datasets, analyze)
, non funziona. Quindi cosa dà? Senza il mio detto wrapper, non posso aggiungere una lista di set di dati attraverso questa funzione. Se qualcuno ha pensieri o idee sul perché questo sta accadendo o su come posso aggirarlo, sarebbe fantastico.
Esempio 2:
dat=list_of_data[[1]]
analyze(dat)
funziona bene. Quindi, in un certo senso, sta ignorando l'argomento e sta solo cercando letteralmente un frame dati denominato dat. Si comporta allo stesso modo, non importa come lo chiamo io.
Grazie mille Joris. Devo davvero sedermi e confrontarmi con i metodi S4. Almeno per ora posso vedere come si comporta questa soluzione alternativa. Saluti. – Maiasaura
Si comporta bene, purché non ci sia un oggetto chiamato "dat" nel proprio spazio di lavoro. In tal caso, questo verrà sovrascritto dalla funzione assign(). Questo è qualcosa che si vuole assolutamente evitare ... –
Not the S4 and .GlobalEnv again: slap on the front :. –