Visualizza / stampa tutte le righe di una tabella (tbl_df)


192

tibble(in precedenza tbl_df) è una versione di un frame di dati creato dal dplyrpacchetto di manipolazione del frame di dati in R. Previene l'output di tabelle lunghe quando si chiama accidentalmente il frame di dati.

Una volta che un frame di dati è stato racchiuso da tibble/ tbl_df, esiste un comando per visualizzare l'intero frame di dati (tutte le righe e le colonne del frame di dati)?

Se uso df[1:100,], vedrò tutte le 100 righe, ma se uso df[1:101,], visualizzerò solo le prime 10 righe. Vorrei visualizzare facilmente tutte le righe per farle scorrere rapidamente.

Esiste un comando dplyr per contrastare questo o un modo per scartare il frame di dati?


4
Viewè invariato con gli "tbl_df"oggetti.
G. Grothendieck,

10
@ G.Grothendieck La visualizzazione è diversa dalla stampa.
Meg,

Risposte:


229

Puoi anche usare

print(tbl_df(df), n=40)

o con l'aiuto dell'operatore del tubo

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

Per stampare tutte le righe specificare tbl_df %>% print(n = Inf)


28
se vuoi non preoccuparti del valore di ne stai già effettuando il piping, puoi usaredf %>% tbl_df %>% print(n = nrow(.))
ClaytonJY il

18
Estendendo la risposta di @ BLT, puoi impostare la n = Infstampa di tutte le righe.
fabbro

10
print(con una tabella) ha anche le opzioni width = e n_extra = per controllare quante colonne vengono stampate, direttamente o indirettamente.
Zhe Zhang,

3
@ClaytonJY Ho anche trovato tbl_df %>% print(n = Inf)lavoro per questo.
Dannid,

qualcuno sa perché print(n = ...)attiva la notazione scientifica sul display tibble?
Agile Bean,

88

Puoi usare as.data.frameo print.data.frame.

Se si desidera che questa sia l'impostazione predefinita, è possibile modificare il valore dplyr.print_maxdell'opzione.

options(dplyr.print_max = 1e9)

66

La vignetta tibble ha un modo aggiornato per modificare il suo comportamento di stampa predefinito:

Puoi controllare l'aspetto predefinito con le opzioni:

options(tibble.print_max = n, tibble.print_min = m): se sono presenti più di n righe, stampa solo le prime m righe. Utilizzare options(tibble.print_max = Inf)per mostrare sempre tutte le righe.

options(tibble.width = Inf) stamperà sempre tutte le colonne, indipendentemente dalla larghezza dello schermo.

esempi

Questo stamperà sempre tutte le righe:

options(tibble.print_max = Inf)

Ciò non limiterà effettivamente la stampa a 50 righe:

options(tibble.print_max = 50)

Ciò limiterà la stampa a 50 righe:

options(tibble.print_max = 50, tibble.print_min = 50)

1
Ciò modificherà il comportamento predefinito per tutte le variabili. Stavo cercando un modo per ignorare il vincolo predefinito. print(n=100)sembra fare quello che voglio. (Le tabelle di riepilogo count(), ad esempio, dovrebbero essere visualizzate nella loro interezza, mentre voglio che le mie tabelle di dati vengano troncate.)
Dannid,

2
@dannid sembra che tu voglia la risposta accettata, quindi.
BLT

5

Come spiegato dettagliatamente nella documentazione del libro , è possibile utilizzare anche una tabella di paging

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

Ciò impaginerà i dati e consentirà di sfogliare tutte le righe e le colonne (a meno che non sia configurato per limitare le righe). Esempio:

inserisci qui la descrizione dell'immagine


1
Come descritto nella documentazione: Se la tabella di paging è generata da un blocco di codice in un R Notebook, è possibile aggiungere il parametro rows.print=[n]alle opzioni di blocco per controllare il numero di righe visualizzate per pagina.
Arthur Small,

0

Preferisco trasformare la tabella in data.frame. Mostra tutto e il gioco è fatto

df %>% data.frame 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.