Ich habe eine große Tabelle mit Tausenden von Einträgen aus einer Datenbank mit einer Struktur ähnlich der in Tabelle 1 in der Abbildung unten abgefragt. Ich möchte die doppelte Zeile behalten, die den höchsten Wert für Var 1 hat, wie in Tabelle 2 gezeigt. Die Situation ist ähnlich der, die in einer früheren Abfrage in diesem Forum remove duplicates based on one column and keep last entry beschrieben wird. Die Auswahl der Zeilen mit einer einfachen for
-Schleife funktioniert, es dauert jedoch sehr lange. Gibt es eine schnellere elegante Art, dies in R zu handhaben?Behalten Sie den letzten Eintrag, aber entfernen Sie andere doppelte Zeile (n) in einem Datenrahmen mit R
Table1 <- structure(list(Var1 = 1001:1009, Var2 = c("AAA", "BBB", "CCC",
"AAA", "DDD", "BBB", "AAA", "EEE", "DDD"), Var3 = c(95L, 100L,
90L, 95L, 85L, 100L, 95L, 45L, 85L), Var4 = c("mg", "kg", "pg",
"mg", "mg", "kg", "mg", "mg", "mg")), .Names = c("Var1", "Var2",
"Var3", "Var4"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-9L), spec = structure(list(cols = structure(list(Var1 = structure(list(), class = c("collector_integer",
"collector")), Var2 = structure(list(), class = c("collector_character",
"collector")), Var3 = structure(list(), class = c("collector_integer",
"collector")), Var4 = structure(list(), class = c("collector_character",
"collector"))), .Names = c("Var1", "Var2", "Var3", "Var4")),
default = structure(list(), class = c("collector_guess",
"collector"))), .Names = c("cols", "default"), class = "col_spec"))
Ihre Antwort gab mir Ideen zur Lösung dieses und anderer Probleme, die ich beheben möchte. – RanonKahn