Ich arbeite mit einem Datensatz, der die Werte der gleichen Variablen zu verschiedenen Zeitpunkten enthält. Im Beispiel unten ich die Werte der Variablen a und b zu den Zeitpunkten haben 1 und 2.Wie mache ich Iterationen in R?
> set.seed(1)
> data <- data.frame(matrix(sample(16), ncol = 4))
> names(data) <- paste(rep(c("a", "b"), each = 2), 1:2, sep = "")
> data
a1 a2 b1 b2
1 5 3 14 13
2 6 10 1 8
3 9 11 2 4
4 12 15 7 16
Nun nehme ich eine neue Variable für beide Zeitpunkte berechnet werden soll, so dass sie die Summe von a enthalten würde und b (anstelle der NAs wie im folgenden Beispiel). Da mein tatsächlicher Datensatz ungefähr 15 verschiedene Variablen und 10 Zeitpunkte (also 150 Spalten) enthält, möchte ich diese Berechnung von 10 neuen Variablen automatisieren.
> data[, paste("ab", 1:2, sep = "")] <- NA
> data
a1 a2 b1 b2 ab1 ab2
1 5 3 14 13 NA NA
2 6 10 1 8 NA NA
3 9 11 2 4 NA NA
4 12 15 7 16 NA NA
Ich habe vorher Stata verwendet, wo ich eine einfache ‚foreach‘ Schleife, dies zu tun schaffen könnte. Etwas wie unten.
foreach t of numlist 1/2 {
generate ab`t' = a`t' + b`t'
}
Aber ich habe gelernt, dass Schleifen in R mit nicht möglich ist, noch habe ich keine Ahnung, wie über Variablennamen Schleife wie in R.
Also, was die richtige Lösung wäre für meine Problem in R?
ähnlich: http://stackoverflow.com/questions/36432686/r-how-to-sum-pairs-in-a-matrix-by-row – jogo
Sie könnten auch Ziehen Sie in Erwägung, Ihre Daten in ein langes Format zu konvertieren.So ist es nicht sauber Daten, wie Sie Informationen in den Spaltennamen haben. – Heroka
@Heroka Ich habe die Daten tatsächlich auf Wide Format umgestaltet, da es einfacher zu arbeiten schien. Aber du hast Recht damit, dass es nicht ordentlich ist, also denke ich vielleicht darüber nach. – lillemets