Indexing grouped_df object

Versuche, eine Spalte eines Objekts der Klasse @ auszuwählgrouped_df by index gibt "Fehler: Index außerhalb der Grenzen". Beispielsweis

x <- mtcars %>% group_by(am, gear) %>% summarise_each(funs(sum), disp, hp, drat)
class(x)
#    "grouped_df" "tbl_df"     "tbl"        "data.frame"
# For some reason the first column can be selected...
x[1]
#    Source: local data frame [4 x 1]
#    Groups: am
#    am
#     0
#     0
#     1
#     1    
# ...but any index > 1 fails
x[2] 
#   Error: index out of bounds
# Coercing to data frame does the trick...
as.data.frame(x)[2]
#   gear
#      3
#      4
#      4
#      5
#... and so does ungrouping
all(ungroup(x)[2] == as.data.frame(x)[2]) # TRUE

Dies verwendet R Version 3.1.1 und Dplyr 0.3.0.2. Ich bin nicht sicher, ob dies ein Fehler oder eine Absicht ist. Gibt es einen guten Grund, warum es so funktioniert? Ich möchte lieber nicht daran denken, die Gruppierung meiner Datenrahmen nach der Verwendung von @ aufzuhebedplyr jedes Mal..

Aktualisiere Nachdem ich ein bisschen näher darauf eingegangen bin, ist meine Vermutung, dass die Motivation für die Definition von[.grouped_df diesen We bedeutet, dass die Gruppen beim Aufrufen von z.x[1:3] (was funktioniert). Wenn der Index jedoch nicht Teil der Gruppierungsvariablen ist, wird der obige Fehler ausgegeben. Vielleicht könnte es so modifiziert werden, dass es in diesem Fall @ aufru[.tbl_df und warnt gleichzeitig ...

Update 2 [.grouped_df wurde in der Entwicklungsversion von dplyr (0.3.0.9000) geändert. Es gibt immer noch einen Fehler aus, ist aber jetzt klarer und gibt an, welche Gruppierungsvariablen nicht enthalten waren.

x[2]
# Error in `[.grouped_df`(x, 2) : 
#     cannot group, grouping variables 'am' not included

Die beste Lösung, die ich gefunden habe, damit mein Code in dieser Situation nicht abstürzt, ist%>% ungroup am Ende vondplyr Befehlskette.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage