Für eine Probe Datenrahmen:Aggregatdaten auf zwei Spalten mit dplyr in R
df <- structure(list(output.code = structure(1:15, .Label = c("E00000001",
"E00000003", "E00000005", "E00000007", "E00000010", "E00000012",
"E00000013", "E00000014", "E00000016", "E00000017", "E00000018",
"E00000019", "E00000020", "E00000021", "E00000022"), class = "factor"),
all.usual = c(194L, 250L, 367L, 123L, 102L, 213L, 216L, 154L,
281L, 290L, 218L, 139L, 226L, 282L, 223L), same.address = c(176L,
218L, 288L, 83L, 80L, 196L, 134L, 125L, 228L, 218L, 189L,
112L, 185L, 235L, 192L), lsoa.code = structure(c(1L, 1L,
1L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 3L), .Label = c("E01000001",
"E01000002", "E01000003"), class = "factor")), .Names = c("output.code",
"all.usual", "same.address", "lsoa.code"), class = "data.frame", row.names = c(NA,
-15L))
Ich versuche, zwei Spalten in einen neuen Datenrahmen zu aggregieren dplyr verwenden.
Für eine Spalte, fand ich dies funktioniert:
library(dplyr)
df %>%
group_by(lsoa.code) %>%
summarise(all.usual = sum(all.usual))
Aber ich möchte die Werte aller ‚lsoa.codes‘ für die beiden Variablen (same.address und all.usual) summieren.
funktioniert das nicht:
df %>%
group_by(lsoa.code) %>%
summarise(all.usual = sum(all.usual)
summarise(same.address = sum(same.address))
Kann jemand bitte beraten, wie dieser Code die beiden Spalten aggregieren angepasst werden kann?
Auch ich möchte einen Datenrahmen aus den Ergebnissen erstellen.
Vielen Dank im Voraus.
Verwendung 'summarise_each (Spaße (sum), all.usual, same.address)' 'oder zusammenfassen (all.usual = sum (all.usual), same.address = sum (same.address)) ' – Jaap
Nehmen Sie die erste Lösung von @ProcrastinatusMaximus. Es ist gut, den richtigen Weg zu lernen –