Ich habe eine einfache Frage zum Aggregieren von Werten in R.
Angenommen, ich habe einen Datenrahmen:
%Vor%Das sieht so aus:
%Vor% Ich habe festgestellt, dass ich Type 1
und Type 1B
in den Daten habe, daher möchte ich Type 1B
in Type 1
kombinieren.
Also entscheide ich mich für dplyr
:
Aber jetzt muss ich weitermachen:
%Vor% Ich denke, ich möchte cbind
diesen neuen DF2 zurück zum ursprünglichen DF machen, aber das bedeutet, dass ich die Spaltennamen als konsistent einstellen muss:
OK, jetzt kann ich rbind:
%Vor%Das Ergebnis? Es hat funktioniert ....
%Vor%... aber hmm! Das war schrecklich! Es muss einen besseren Weg geben, Werte einfach zu kombinieren.
Verwenden Sie sub()
mit aggregate()
und entfernen Sie alles andere als eine Ziffer vom Ende von col1
,
Der do.call()
-Wrapper ist da, damit die erste Spalte nach aggregate()
richtig von einer Matrix in einen Vektor geändert wird. Auf diese Weise gibt es später keine Überraschungen auf der Straße.
Meiner Meinung nach ist aggregate()
die perfekte Funktion für diesen Zweck, aber Sie sollten keine Textverarbeitung durchführen müssen (z. B. gsub()
). Ich würde dies in einem zweistufigen Prozess tun:
col1
mit der neuen gewünschten Gruppierung. col1
, um die Gruppierung anzugeben.