Jeg vil gjerne legge til elementer i en liste i en løkke (jeg vet ikke nøyaktig hvor mange)
Som dette:
l <- list();
while(...)
l <- new_element(...);
På slutten vil l[1]
være mitt første element, l[2]
mitt andre og så videre.
Vet du hvordan du skal gå frem?
Du bør ikke legge til i listen din ved å bruke c
inne i løkken, fordi det kan resultere i veldig treg kode. I utgangspunktet når du gjør c(l, new_element)
, kopieres hele innholdet i listen. I stedet for det må du få tilgang til elementene i listen etter indeks. Hvis du vet hvor lang listen din kommer til å bli, er det best å initialisere den til denne størrelsen ved hjelp av l <-vektor("list", N)
. Hvis du ikke gjør det, kan du initialisere den til å ha lengde lik et stort tall (f.eks. hvis du har en øvre grense for antall iterasjoner) og deretter bare velge elementene som ikke er NULL etter at løkken er ferdig. Uansett, det grunnleggende poenget er at du bør ha en indeks for å holde styr på listeelementet og legge til ved hjelp av det, for eksempel
i <- 1
while(...) {
l[[i]] <- new_element
i <- i + 1
}
For mer info ta en titt på Patrick Burns' The R Inferno (kapittel 2).