Wyświetl / wydrukuj wszystkie wiersze tabeli (tbl_df)

192

tibble(poprzednio tbl_df) jest wersją ramki danych utworzonej przez dplyrpakiet do manipulacji ramkami danych w R. Zapobiega to powstawaniu długich tabel przy przypadkowym wywołaniu ramki danych.

Czy po zawinięciu ramki danych przez tibble/ tbl_df, istnieje jednak polecenie, aby wyświetlić całą ramkę danych (wszystkie wiersze i kolumny ramki danych)?

Jeśli użyję df[1:100,], zobaczę wszystkie 100 wierszy, ale jeśli użyję df[1:101,], wyświetli tylko pierwsze 10 wierszy. Chciałbym łatwo wyświetlić wszystkie wiersze, aby szybko je przewijać.

Czy istnieje polecenie dplyr, aby temu przeciwdziałać, lub sposób na rozpakowanie ramki danych?

Zhe Zhang
źródło
4
Viewpozostaje niezmieniony z "tbl_df"obiektami.
G. Grothendieck
10
@ G.Grothendieck Wyświetlanie różni się od drukowania.
Meg

Odpowiedzi:

229

Możesz także użyć

print(tbl_df(df), n=40)

lub z pomocą operatora potoku

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

Aby wydrukować wszystkie wiersze, określ tbl_df %>% print(n = Inf)

Tim
źródło
28
jeśli chcesz, nie martw się o wartość, na już korzystasz z df %>% tbl_df %>% print(n = nrow(.))
pipingu
18
Rozszerzając odpowiedź @ BLT, możesz ustawić n = Infdrukowanie wszystkich wierszy.
seasmith
10
print(z tibble) ma również opcje width = i n_extra = do kontrolowania, ile kolumn ma być drukowanych, bezpośrednio lub pośrednio.
Zhe Zhang
3
@ClaytonJY Pracowałem również tbl_df %>% print(n = Inf)nad tym.
Dannid
Czy ktoś wie, dlaczego print(n = ...)włącza notację naukową na wyświetlaczu?
Agile Bean
88

Możesz użyć as.data.framelub print.data.frame.

Jeśli chcesz, aby było to ustawienie domyślne, możesz zmienić wartość dplyr.print_maxopcji.

options(dplyr.print_max = 1e9)
Vincent Zoonekynd
źródło
66

Tibble winieta ma zaktualizowaną sposób zmienić jego zachowanie domyślne drukowania:

Możesz kontrolować domyślny wygląd za pomocą opcji:

options(tibble.print_max = n, tibble.print_min = m): jeśli jest więcej niż n wierszy, wydrukuj tylko pierwsze m wierszy. Użyj, options(tibble.print_max = Inf)aby zawsze wyświetlać wszystkie wiersze.

options(tibble.width = Inf) zawsze wydrukuje wszystkie kolumny, niezależnie od szerokości ekranu.

przykłady

Spowoduje to zawsze wydrukowanie wszystkich wierszy:

options(tibble.print_max = Inf)

To nie ogranicza drukowania do 50 linii:

options(tibble.print_max = 50)

Ale ograniczy to drukowanie do 50 linii:

options(tibble.print_max = 50, tibble.print_min = 50)
BLT
źródło
1
Spowoduje to zmianę domyślnego zachowania wszystkich wątków. Szukałem sposobu na zastąpienie domyślnego ograniczenia. print(n=100)wydaje się robić to, co chcę. (Tabele podsumowań count(), na przykład, powinny być wyświetlane w całości, podczas gdy chcę, aby moje tabele danych zostały obcięte.)
Dannid,
2
@dannid wygląda więc tak, jakbyś chciał zaakceptowanej odpowiedzi.
BLT
5

Jak szczegółowo opisano w dokumentacji bookdown , możesz również użyć tabeli stronicowanej

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

Spowoduje to stronicowanie danych i pozwoli na przeglądanie wszystkich wierszy i kolumn (chyba że skonfigurowano je do ograniczania wierszy). Przykład:

wprowadź opis zdjęcia tutaj

Holger Brandl
źródło
1
Jak opisano w tej dokumentacji: Jeśli tabela stronicowana jest generowana przez fragment kodu w notatniku R, można dodać parametr rows.print=[n]do opcji fragmentu, aby kontrolować liczbę wierszy wyświetlanych na stronie.
Arthur Small,
0

Wolę zmienić tibble na data.frame. Pokazuje wszystko i gotowe

df %>% data.frame 
Leworęczny
źródło