Ich versuche einige Daten in einem Datenrahmen zu gruppieren und einige Berechnungen über die Ergebnisse über eine Schleife durchzuführen.Looping über mehrere Spalten in einem Datenrahmen in R
Nehmen Sie das folgenden dataframe- "age_wght"
Year Last_Name First_Name Age Weight
1 2000 Smith John 20 145
2 2000 Smith Matt 9 85
3 2005 Smith John 25 160
4 2000 Jones Bob 12 100
5 2000 Jones Mary 18 120
6 2005 Jones Mary 23 130
7 2000 Jones Carrie 9 90
8 2005 Jones Bob 17 210
Ich durchschnittliches Alter und Gewicht für jede Person zu bekommen versuchen.
Ich kann das tapply über tun:
age_wght $ key1 = Paste (age_wght $ Last_Name, age_wght $ First_Name, sep =“: Aktuell über mich dies berechnen, indem eine neue Schlüsselspalte in dem Datenrahmen zu schaffen. „)
Year Last_Name First_Name Age Weight key1
1 2000 Smith John 20 145 Smith.John
2 2000 Smith Matt 9 85 Smith.Matt
3 2005 Smith John 25 160 Smith.John
4 2000 Jones Bob 12 100 Jones.Bob
5 2000 Jones Mary 18 120 Jones.Mary
6 2005 Jones Mary 23 130 Jones.Mary
Dann tapply wie unten verwenden:
avg_age < - mit (age_wght, tapply (Alter, key1, FUN = Mittelwert))
avg_wght < -mit (age_wght, tapply (Gewicht, key1, FUN = Mittelwert))
age_wght_summary < - data.frame (avg_age, avg_wght)
age_wght_summary
Aber was bekomme ich dann ist etwas, das wie folgt aussieht:
avg_age avg_wght
Jones.Bob 14.5 155.0
Jones.Carrie 9.0 90.0
Jones.Mary 20.5 125.0
Smith.John 22.5 152.5
Smith.Matt 9.0 85.0
was Sinn macht, wie ich die tapply auf dem Schlüssel1 Index am platzieren, aber mein gewünschten Ergebnis ist 9 eine Tabelle mit den Header haben: Last_Name First_Name avg_age avg_wght
Ich habe auch versucht, die dplyr-Bibliothek mit group_by aber war nicht in der Lage, es zur Arbeit zu bringen.
Verwenden 'aggregate' wie -' Aggregat (cbind (Alter , Gewicht) ~ Last_Name + Fi rst_Name, data = dat, FUN = mean) ' – thelatemail