Sortieren Sie ein dataframe Spalte von der Häufigkeit des Auftretens
Ich habe einen dataframe in df genannt, gibt es drei Spalten können sagen,
Region ID Salary
1 A1 100
1 A2 1001
1 A3 2000
1 A4 2431
1 A5 1001
..............
..............
2 A6 1002
2 A7 1002
2 A8 1002
3 A9 3001
3 A10 3001
3 A11 4001
Möchte ich nun Sortieren der Spalte Gehalt durch das auftreten von Ihnen durch die Region, das heißt unter Verwendung der Frequenz-Tabelle oder so etwas, oder Holen Sie sich die Wahrscheinlichkeit des Auftretens pro region und Sortieren Sie diese. Bitte davon ausgehen, dass der Datenbestand ist groß genug (1000 Zeilen)
P. S: Kann jemand empfehlen, eine gute Methode, um einige zu tun. Bitte verwenden Sie die Spalte-Namen in Ihren Antworten, da die Reale Tabelle hat einige Spalte in der Mitte
Vielen Dank im Voraus
**EDIT 1**
Ich glaube, ich war nicht klar genug, vielen Dank für all diejenigen, die antwortete, ich aufrichtig entschuldigen für die nicht klar ist:
Mit dem aktuellen Datenbestand, die wir brauchen zu erstellen eine häufigkeitstabelle sagen:
Region Salary(bin) Count
1 1K 6
1 5K 3
1 2K 2
1 15K 2
1 0.5K 2
1 24K 1
1 0K 0
mithilfe dieser können wir klassifizieren, hinzufügen von neuen Spalten in unserem data frame df genannt-Behälter(Eimer aus Histogramm)
Region ID Salary (bin) Count
1 A1 100 1K 6
1 A2 1001 2K 2
1 A3 2000 2K 2
1 A4 2431 5K 3
..........................So auf...............
Können wir tun, die weiter oben mit:
df$bin <- cut(df$salary, breaks=hist(df$salary)$breaks)
Nachdem die Sortierung nach Region und Anzahl und Gehalt, das wir bekommen:
Region ID Salary (bin) Count
1 A1 100 1K 6
1 A4 2431 5K 3
1 A3 2000 2K 2
1 A2 1001 2K 2
Wie Sie sehen können, die wir brauchen, zu erstellen, Frequenz-Tabelle für jede region und jedes tun, Sortieren. Ich habe die oben mit Hilfe von Tableau, aber ich möchte den Vorgang automatisieren, in R
Hoffe, ich war klar
- Sieht das nicht einfach irgendwie durch den numerischen Wert anstelle der Häufigkeit des Auftretens?
- weiterhin können Sie die unten Ansätze, soweit ich das sehen kann.
- Ja, aber ich Stimme ( daher die upvotes), hoffte auf eine elegantere Lösung als meine
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein möglicher Ansatz ist die Verwendung
data.table
hinzufügenfreq
Spalte, Sortieren Sie anschließend Ihre Daten entsprechend:setDT(df)[, .N, by = .(Region,Salary)][order(-N)]
freq :=
wiederBase R:
Ausgabe:
(bearbeitet: incloude Kommentar auf der
ungroup
aus Jaap, guter Punkt)df %>% group_by(Region, Salary) %>% summarise(n=n()) %>% ungroup() %>% arrange(-n)
mutate
stattsummarise