Ich habe Datensätzedplyr Manipulation zeilenweise mutieren Gruppierung
x <- data.frame(Postcode = c(1, 2, 3, 4, 5, 6),
Latitude = c(3.1, 3.2, 3.3, 3.3, 3.4, 3.4),
Longitude = c(100, 101, 102, 102, 103, 104),
Exposure = c(1, 2, 3, 4, 5, 6))
Ich versuche, die Daten zu manipulieren innen x
wirdx <- data.frame(Postcode = c(1, 2, 3, 4, 5, 6),
Latitude = c(3.1, 3.2, 3.3, 3.3, 3.4, 3.4),
Longitude = c(100, 101, 102, 102, 103, 104),
Exposure = c(1, 2, 3, 4, 5, 6),
coords = c("3.1, 100", "3.2, 101", "3.3, 102", "3.3, 102",
"3.4, 103", "3.4, 104"),
postcode = c("1", "2", "3,4", "3,4", "5", "6"),
exposure = c(1, 2, 7, 7, 5, 6))
Die neue Spalte postcode
die Postcode
Paste zusammen, die die gleiche Latitude
hat und Longitude
. coords
wird die Latitude
und Longitude
einfügen, während exposure
die Exposure
, coords
summiert, d. H. Die gleiche Latitude
und Longitude
.
Ich kann dies erreichen, indem mit dplyr
Paket und for
Schleife
x <- mutate(x, coords = paste(Latitude, Longitude, sep = ", "))
x <- cbind(x, postcode = rep(0, nrow(x)), exposure = rep(0, nrow(x)))
for(i in unique(x$coords)){
x$postcode[x$coords == i] <- paste(x$Postcode[x$coords == i], collapse = ", ")
x$exposure[x$coords == i] <- sum(x$Exposure[x$coords == i])
}
Wie kann ich dies erreichen, indem nur nur dplyr
Paket verwenden, ohne for
Schleife? oder vielleicht anderer Ansatz, die effizienter als die Verwendung von for
Schleife ist, weil meine tatsächlichen Datensätze sind recht groß
Der zweite Datensatz hat eine ungleiche Anzahl von Elementen. Bitte aktualisiere es – akrun
@akrun Ich habe es bearbeitet. Danke für die Benachrichtigung –
Es wird geschlossen, wenn Sie nicht beheben: Fehler in data.frame (Postleitzahl = c (0, 1, 2, 3, 4, 5, 6), Breitengrad = c (3.1,: Argumente bedeuten unterschiedliche Anzahl von Zeilen: 7, 6 – hrbrmstr