Objeto agrupando_df de indexação

Tentando selecionar uma coluna de um objeto de classegrouped_df pelo índice fornece "Erro: índice fora dos limites". Por exemplo

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

Isso está usando o R versão 3.1.1 e o dplyr 0.3.0.2. Não tenho certeza se isso é um bug ou intencional. Existe alguma boa razão para que funcione dessa maneira? Prefiro não ter que me lembrar de desagrupar meus quadros de dados depois de usardplyr toda vez...

Atualizar Tendo analisado um pouco mais sobre isso, meu palpite é que a motivação para definir[.grouped_df deste jeito é para que os grupos sejam preservados ao ligar, por exemplo.x[1:3] (que funciona). No entanto, quando o índice não faz parte das variáveis de agrupamento, o erro acima é gerado. Talvez possa ser modificado para que, neste caso, chame[.tbl_df e lança um aviso ao mesmo tempo ...

Atualização 2 [.grouped_df foi modificado na versão de desenvolvimento do dplyr (0.3.0.9000). Ele ainda gera um erro, mas é mais claro agora, especificando quais variáveis de agrupamento não foram incluídas.

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

A melhor solução que encontrei para que meu código não trava nessa situação é incluir%>% ungroup no final dedplyr cadeia de comando.

questionAnswers(1)

yourAnswerToTheQuestion