Vereinbaren Sie einen grouped_df Gruppe von Variablen funktioniert nicht

Ich habe einen Daten.frame, client-Namen, Jahren, und einige Umsatz-zahlen aus jedem Jahr.

df <- data.frame(client = rep(c("Client A","Client B", "Client C"),3), 
                 year = rep(c(2014,2013,2012), each=3), 
                 rev = rep(c(10,20,30),3)
                )

Möchte ich am Ende mit einem Daten.Rahmen, die Aggregate der Umsatz nach Kunde und Jahr. Ich habe dann die Daten Sortieren möchten.Rahmen von Jahres dann in absteigender Einnahmen.

library(dplyr)
df1 <- df %>% 
        group_by(client, year) %>%
        summarise(tot = sum(rev)) %>%
        arrange(year, desc(tot))

Jedoch, wenn Sie den code über die arrange() Funktion nicht ändern, dass die Reihenfolge der gruppierten Daten.Rahmen. Wenn ich den untenstehenden code und zwingen zu einer normalen Daten.frame-es funktioniert.

   library(dplyr)
    df1 <- df %>% 
            group_by(client, year) %>%
            summarise(tot = sum(rev)) %>%
            data.frame() %>%
            arrange(year, desc(tot))

Bin ich etwas fehlt, oder werde ich brauchen, um dies zu tun, jedes mal, wenn Sie versuchen zu arrange eine grouped_df durch eine gruppierte variable?

R-Version: 3.1.1
dplyr-package version: 0.3.0.2

BEARBEITEN 11/13/2017:
Wie bereits von lucacerone, beginnend mit dplyr 0.5, arrangieren, wieder einmal ignoriert Gruppen bei der Sortierung. Also mein original-code funktioniert jetzt so, wie ich es zunächst erwartet hätte.

anordnen() mal wieder ignoriert Gruppierung, zurückkehren zu dem Verhalten von dplyr 0,3 und früher. Diese macht organisieren() inkonsistent mit anderen dplyr Verben, aber ich denke, dieses Verhalten ist in der Regel mehr nützlich. Unabhängig davon, es ist nicht zu ändern, wieder als weitere änderungen wird nur zu noch mehr Verwirrung.

InformationsquelleAutor TBT8 | 2014-10-24
Schreibe einen Kommentar