Mostrar / imprimir todas las filas de un tibble (tbl_df)

192

tibble(anteriormente tbl_df) es una versión de una trama de datos creada por el dplyrpaquete de manipulación de trama de datos en R. Evita salidas de tabla largas cuando se llama accidentalmente a la trama de datos.

Una vez que un marco de datos ha sido envuelto por tibble/ tbl_df, ¿hay un comando para ver todo el marco de datos (todas las filas y columnas del marco de datos)?

Si lo uso df[1:100,], veré las 100 filas, pero si lo uso df[1:101,], solo mostrará las primeras 10 filas. Me gustaría mostrar fácilmente todas las filas para desplazarme rápidamente por ellas.

¿Existe un comando dplyr para contrarrestar esto o una forma de desenvolver el marco de datos?

Zhe Zhang
fuente
44
Viewno ha cambiado con los "tbl_df"objetos.
G. Grothendieck
10
@ G.Grothendieck La visualización es diferente a la impresión.
Meg

Respuestas:

229

También podrías usar

print(tbl_df(df), n=40)

o con la ayuda del operador de tubería

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

Para imprimir todas las filas, especifique tbl_df %>% print(n = Inf)

Tim
fuente
28
si quiere no quiere preocuparse por el valor de ny ya está entrando, puede usardf %>% tbl_df %>% print(n = nrow(.))
ClaytonJY
18
Extendiendo la respuesta de @ BLT, puede configurar n = Infpara imprimir todas las filas.
marinero
10
print(con un tibble) también tiene las opciones width = y n_extra = para controlar cuántas columnas se imprimen, ya sea directa o indirectamente.
Zhe Zhang
3
@ClaytonJY También he encontrado tbl_df %>% print(n = Inf)que funciona para esto.
Dannid el
¿Alguien sabe por qué print(n = ...)activa la notación científica en la pantalla tibble?
Agile Bean
88

Puedes usar as.data.frameo print.data.frame.

Si desea que esto sea el predeterminado, puede cambiar el valor de la dplyr.print_maxopción.

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

La viñeta tibble tiene una forma actualizada de cambiar su comportamiento de impresión predeterminado:

Puede controlar la apariencia predeterminada con opciones:

options(tibble.print_max = n, tibble.print_min = m): si hay más de n filas, imprima solo las primeras m filas. Use options(tibble.print_max = Inf)para mostrar siempre todas las filas.

options(tibble.width = Inf) siempre imprimirá todas las columnas, independientemente del ancho de la pantalla.

ejemplos

Esto siempre imprimirá todas las filas:

options(tibble.print_max = Inf)

En realidad, esto no limitará la impresión a 50 líneas:

options(tibble.print_max = 50)

Pero esto restringirá la impresión a 50 líneas:

options(tibble.print_max = 50, tibble.print_min = 50)
BLT
fuente
1
Esto cambiará el comportamiento predeterminado para todos los tibbles. Estaba buscando una manera de anular la restricción predeterminada. print(n=100)Parece hacer lo que quiero. (Las tablas de resumen de count(), por ejemplo, deberían mostrarse en su totalidad, mientras que quiero que mis tablas de datos se
trunquen
2
@dannid parece que quieres la respuesta aceptada, entonces.
BLT
5

Como se detalla en la documentación de bookdown , también puede usar una tabla paginada

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

Esto paginará los datos y permitirá explorar todas las filas y columnas (a menos que esté configurado para limitar las filas). Ejemplo:

ingrese la descripción de la imagen aquí

Holger Brandl
fuente
1
Como se describe en esa documentación: si la tabla paginada es generada por un fragmento de código en un R Notebook, puede agregar el parámetro rows.print=[n]a las opciones de fragmento para controlar el número de filas que se muestran por página.
Arthur Small
0

Prefiero convertir el tibble en data.frame. Muestra todo y ya está

df %>% data.frame 
Zurdo
fuente