Wie kann man eine Bereichsgruppierung für eine Spalte mit dplyr durchführen?
Ich möchte eine data.table basierend auf dem @ einer Spalte gruppiereAngebo value, wie kann ich das mit der Dplyr-Bibliothek machen?
Zum Beispiel sieht meine Datentabelle wie folgt aus:
library(data.table)
library(dplyr)
DT <- data.table(A=1:100, B=runif(100), Amount=runif(100, 0, 100))
Jetzt möchte ich DT in 20 Gruppen in einem Intervall von 0,05 von Spalte B gruppieren und zählen, wie viele Zeilen in jeder Gruppe sind. B. bilden alle Zeilen mit einem Spalten-B-Wert im Bereich von [0,05] eine Gruppe; Alle Zeilen mit dem Wert für Spalte B im Bereich von [0,05, 0,1] bilden eine andere Gruppe usw. Gibt es eine effiziente Möglichkeit, diese Gruppenfunktion auszuführen?
Vielen Dank
----------------------------- Weitere Fragen zu akruns Antwort. Danke akrun für deine Antwort. Ich habe eine neue Frage zur Funktion "Schneiden". Wenn mein DT wie folgt ist:
DT <- data.table(A=1:10, B=c(0.01, 0.04, 0.06, 0.09, 0.1, 0.13, 0.14, 0.15, 0.17, 0.71))
unter Verwendung des folgenden Codes:
DT %>%
group_by(gr=cut(B, breaks= seq(0, 1, by = 0.05), right=F) ) %>%
summarise(n= n()) %>%
arrange(as.numeric(gr))
Ich erwarte, Ergebnisse wie diese zu sehen:
gr n
1 [0,0.05) 2
2 [0.05,0.1) 2
3 [0.1,0.15) 3
4 [0.15,0.2) 2
5 [0.7,0.75) 1
Aber das Ergebnis, das ich bekommen habe, ist wie folgt:
gr n
1 [0,0.05) 2
2 [0.05,0.1) 2
3 [0.1,0.15) 4
4 [0.15,0.2) 1
5 [0.7,0.75) 1
Sieht so aus, als wäre der Wert 0.15 nicht richtig zugeordnet. Irgendwelche Gedanken dazu?