Ich arbeite gerade an meinem Weg durch das Buch 'R for Data Science'.Schreiben einer for-Schleife mit der Ausgabe als Datenrahmen in R
Ich versuche diese Übungsfrage (21.2.1 Q1.4) zu lösen, aber war nicht in der Lage, die richtige Ausgabe vor dem Start der for-Schleife zu bestimmen.
Schreiben Sie eine for-Schleife: generieren 10 zufällige Normalen für jeden von μ = -10, 0, 10 und 100.
Wie in den vorherigen Fragen in dem Buch, das ich versucht haben, einfügen in eine Vektorausgabe, aber für dieses Beispiel, es scheint, ich brauche die Ausgabe, um ein Datenrahmen zu sein?
Dies ist mein Code so weit:
values <- c(-10,0,10,100)
output <- vector("double", 10)
for (i in seq_along(values)) {
output[[i]] <- rnorm(10, mean = values[[i]])
}
Ich weiß, dass der Ausgang falsch ist, aber ich bin nicht sicher, wie das Format, das ich hier erstellen müssen. Jede Hilfe wird sehr geschätzt. Vielen Dank!
Sie können 'lapply' oder' sapply' dh 'd1 <- data.frame (lapply (Werte, Funktion (x) rnorm (10 , Mittelwert = x))); Spaltennamen (d1) <- paste0 ("V", seq_along (Werte)) ' – akrun
Hallo, danke für deine Lösung, das funktioniert. b Es wäre aber auch gut, eine For-Loop-Lösung zu bekommen, da es sich um eine Fähigkeit handelt, die ich gerade verbessern möchte. Vielen Dank! – George
Sie erstellen zunächst eine leere Matrix oder Liste und weisen ihr dann die Werte zu. h. "Ausgabe <- Vektor (" Liste ", 4)"; und verwenden Sie Ihren Code und 'cbind' oder' rbind', falls erforderlich, d. h. 'do.call (cbind, output)' – akrun