Ich möchte eine Liste von Funktionen in R erstellen, wo Werte aus einer for-Schleife in der Funktionsdefinition gespeichert werden. Hier ein Beispiel:R: For-Loop-Variable in Funktionsdeklaration verwenden
init <- function(){
mod <- list()
for(i in 1:3){
mod[[length(mod) + 1]] <- function(x) sum(i + x)
}
return(mod)
}
mod <- init()
mod[[1]](2) # 5 - but I want 3
mod[[2]](2) # 5 - but I want 4
Im obigen Beispiel, unabhängig davon, welche Funktion ich nenne, ist i
immer der letzte Wert in der for-Schleife-Sequenz, ich verstehe dies das richtige Verhalten ist.
Ich bin auf der Suche nach etwas, das dies erreicht:
mod[[1]] <- function(x) sum(1 + x)
mod[[2]] <- function(x) sum(2 + x)
mod[[3]] <- function(x) sum(3 + x)
Warum? Scheint verschlungen. Es klingt so, als ob man vor der Schleife eine andere Variable wie 'const <- 2' deklarieren und stattdessen 'sum (const + x)' verwenden möchte. Immer noch wirklich verwirrt ... – adatum
Ich habe ein Beispiel hinzugefügt, wie ich jede Funktion aussehen möchte. Mein tatsächlicher Anwendungsfall ist komplizierter. Ich versuche nur zu verstehen, wie der Bereich funktioniert. – BMW