Exibir / imprimir todas as linhas de uma rampa (tbl_df)

192

tibble(anteriormente tbl_df) é uma versão de um quadro de dados criado pelo dplyrpacote de manipulação do quadro de dados em R. Ele evita saídas longas da tabela ao chamar acidentalmente o quadro de dados.

Depois que um quadro de dados é agrupado por tibble/ tbl_df, existe um comando para exibir todo o quadro de dados (todas as linhas e colunas do quadro de dados)?

Se eu usar df[1:100,], vou ver todas as 100 linhas, mas se eu usar df[1:101,], ele exibirá apenas as 10 primeiras linhas. Gostaria de exibir facilmente todas as linhas para rolar rapidamente por elas.

Existe um comando dplyr para neutralizar isso ou uma maneira de desembrulhar o quadro de dados?

Zhe Zhang
fonte
4
Viewpermanece inalterado com "tbl_df"objetos.
G. Grothendieck
10
@ G.Grothendieck A visualização é diferente da impressão.
Meg

Respostas:

229

Você também pode usar

print(tbl_df(df), n=40)

ou com a ajuda do operador do tubo

df %>% tbl_df %>% print(n=40)

Para imprimir todas as linhas, especifique tbl_df %>% print(n = Inf)

Tim
fonte
28
se você quer não quer se preocupar com o valor ne você já está tubulação, você pode usardf %>% tbl_df %>% print(n = nrow(.))
ClaytonJY
18
Estendendo a resposta do @ BLT, você pode configurar n = Infpara imprimir todas as linhas.
seasmith
10
print(com um patim) também tem as opções width = e n_extra = para controlar quantas colunas são impressas, direta ou indiretamente.
Zhe Zhang
3
@ClaytonJY Eu também encontrei tbl_df %>% print(n = Inf)para trabalhar para isso.
Dannid
alguém sabe por que print(n = ...)ativar a notação científica na tela de petiscos?
Agile Bean
88

Você pode usar as.data.frameou print.data.frame.

Se você deseja que este seja o padrão, pode alterar o valor da dplyr.print_maxopção.

options(dplyr.print_max = 1e9)
Vincent Zoonekynd
fonte
66

A vinheta de petisco possui uma maneira atualizada de alterar seu comportamento de impressão padrão:

Você pode controlar a aparência padrão com as opções:

options(tibble.print_max = n, tibble.print_min = m): se houver mais de n linhas, imprima apenas as primeiras m linhas. Use options(tibble.print_max = Inf)para mostrar sempre todas as linhas.

options(tibble.width = Inf) sempre imprimirá todas as colunas, independentemente da largura da tela.

exemplos

Isso sempre imprimirá todas as linhas:

options(tibble.print_max = Inf)

Na verdade, isso não limitará a impressão a 50 linhas:

options(tibble.print_max = 50)

Mas isso restringirá a impressão a 50 linhas:

options(tibble.print_max = 50, tibble.print_min = 50)
BLT
fonte
1
Isso mudará o comportamento padrão de todas as rações. Eu estava procurando uma maneira de substituir a restrição padrão. print(n=100)parece fazer o que eu quero. (As tabelas de resumo de count(), por exemplo, deve exibir em sua totalidade, ao passo que eu não quero que meus tabelas de dados a ser truncado.)
Dannid
2
Parece que você quer a resposta aceita, então.
BLT
5

Conforme detalhado na documentação do livro , você também pode usar uma tabela paginada

mtcars %>% tbl_df %>% rmarkdown::paged_table()

Isso paginará os dados e permitirá navegar em todas as linhas e colunas (a menos que configurado para limitar as linhas). Exemplo:

insira a descrição da imagem aqui

Holger Brandl
fonte
1
Conforme descrito na documentação: Se a tabela paginada for gerada por um pedaço de código em um Bloco de Notas R, você poderá adicionar o parâmetro rows.print=[n]às opções de pedaço para controlar o número de linhas exibidas por página.
Arthur Small
0

Eu prefiro mudar a tag para data.frame. Mostra tudo e pronto

df %>% data.frame 
Lefty
fonte