Ich möchte Elemente zu einer Liste in einer Schleife (I don & #39; t genau wissen, wie viele)
Etwa so:
l <- list();
while(...)
l <- new_element(...);
Am Ende wäre l[1]
mein erstes Element, l[2]
mein zweites und so weiter.
Wissen Sie, wie Sie vorgehen müssen?
Sie sollten Ihre Liste nicht mit c
innerhalb der Schleife ergänzen, denn das kann zu sehr, sehr langsamem Code führen. Wenn Sie c(l, neues_Element)
verwenden, wird der gesamte Inhalt der Liste kopiert. Stattdessen müssen Sie auf die Elemente der Liste über den Index zugreifen. Wenn Sie wissen, wie lang Ihre Liste sein wird, ist es am besten, sie auf diese Größe zu initialisieren, indem Sie l <- vector("list", N)
verwenden. Wenn Sie das nicht tun, können Sie die Länge mit einer großen Zahl initialisieren (z.B. wenn Sie eine Obergrenze für die Anzahl der Iterationen haben) und dann einfach die Nicht-NULL-Elemente auswählen, nachdem die Schleife beendet ist. Wie auch immer, der grundlegende Punkt ist, dass Sie einen Index haben sollten, um das Listenelement zu verfolgen und mit diesem z.B. hinzuzufügen
i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}
Weitere Informationen finden Sie in Patrick Burns' The R Inferno (Kapitel 2).