แสดง / พิมพ์แถวทั้งหมดของ tibble (tbl_df)


192

tibble(ก่อนหน้านี้tbl_df) เป็นรุ่นของกรอบข้อมูลที่สร้างขึ้นโดยdplyrแพคเกจการจัดการกรอบข้อมูลในอาร์มันจะป้องกันการแสดงผลตารางยาวเมื่อเรียกเฟรมข้อมูลโดยไม่ตั้งใจ

เมื่อกรอบข้อมูลถูกล้อมรอบด้วยtibble/ tbl_dfมีคำสั่งให้ดูกรอบข้อมูลทั้งหมดหรือไม่ (แถวและคอลัมน์ทั้งหมดของกรอบข้อมูล)?

ถ้าฉันใช้df[1:100,]ฉันจะเห็นทั้ง 100 แถว แต่ถ้าฉันใช้df[1:101,]มันจะแสดงเฉพาะ 10 แถวแรกเท่านั้น ฉันต้องการแสดงแถวทั้งหมดอย่างง่ายดายเพื่อเลื่อนดูอย่างรวดเร็ว

มีคำสั่ง dplyr ที่จะตอบโต้เรื่องนี้หรือวิธีแกะเฟรมข้อมูลหรือไม่?


4
Viewไม่เปลี่ยนแปลงกับ"tbl_df"วัตถุ
G. Grothendieck

10
@ G.Grothendieck การรับชมต่างจากการพิมพ์
Meg

คำตอบ:


229

คุณสามารถใช้

print(tbl_df(df), n=40)

หรือด้วยความช่วยเหลือของผู้ควบคุมท่อ

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

หากต้องการพิมพ์แถวทั้งหมดให้ระบุ tbl_df %>% print(n = Inf)


28
หากคุณไม่ต้องการที่จะกังวลเกี่ยวกับคุณค่าของnและคุณกำลังไปป์df %>% tbl_df %>% print(n = nrow(.))
ไลน์

18
เมื่อได้คำตอบของ @ BLT คุณสามารถตั้งn = Infให้พิมพ์แถวทั้งหมดได้
seasmith

10
print(พร้อม tibble) ยังมีwidth = และn_extra = ตัวเลือกเพื่อควบคุมจำนวนคอลัมน์ที่จะพิมพ์ไม่ว่าโดยตรงหรือโดยอ้อม
Zhe Zhang

3
@ClaytonJY ฉันยังพบว่าtbl_df %>% print(n = Inf)ทำงานได้
Dannid

ไม่มีใครรู้ว่าทำไมprint(n = ...)เปิดสัญกรณ์วิทยาศาสตร์ในจอแสดงผล tibble?
Agile Bean

88

คุณสามารถใช้หรือas.data.frameprint.data.frame

หากคุณต้องการให้สิ่งนี้เป็นค่าเริ่มต้นคุณสามารถเปลี่ยนค่าของdplyr.print_maxตัวเลือก

options(dplyr.print_max = 1e9)

66

บทความ tibbleมีวิธีการปรับปรุงการเปลี่ยนแปลงพฤติกรรมการพิมพ์เริ่มต้น:

คุณสามารถควบคุมลักษณะที่ปรากฏเริ่มต้นด้วยตัวเลือก:

options(tibble.print_max = n, tibble.print_min = m): หากมีมากกว่า n แถวให้พิมพ์เฉพาะแถวแรกเท่านั้น ใช้options(tibble.print_max = Inf)เพื่อแสดงแถวทั้งหมดเสมอ

options(tibble.width = Inf) จะพิมพ์คอลัมน์ทั้งหมดเสมอโดยไม่คำนึงถึงความกว้างของหน้าจอ

ตัวอย่าง

นี่จะพิมพ์แถวทั้งหมดเสมอ:

options(tibble.print_max = Inf)

สิ่งนี้จะไม่ จำกัด จำนวนการพิมพ์ถึง 50 บรรทัด:

options(tibble.print_max = 50)

แต่สิ่งนี้จะ จำกัด การพิมพ์ 50 บรรทัด:

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

1
สิ่งนี้จะเปลี่ยนพฤติกรรมเริ่มต้นสำหรับ tibbles ทั้งหมด ฉันกำลังมองหาวิธีที่จะแทนที่ข้อ จำกัด เริ่มต้น print(n=100)ดูเหมือนจะทำสิ่งที่ฉันต้องการ ( count()ตัวอย่างเช่นจากตารางสรุปควรแสดงผลอย่างครบถ้วนในขณะที่ฉันต้องการให้ตารางข้อมูลของฉันถูกตัดทอน)
Dannid

2
@danid ดูเหมือนว่าคุณต้องการคำตอบที่ยอมรับแล้ว
BLT

5

ตามรายละเอียดในเอกสารประกอบการจองคุณสามารถใช้ตารางเพจได้

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

สิ่งนี้จะแบ่งหน้าข้อมูลและอนุญาตให้เรียกดูแถวและคอลัมน์ทั้งหมด (ยกเว้นว่าได้กำหนดค่าให้ปิดแถว) ตัวอย่าง:

ป้อนคำอธิบายรูปภาพที่นี่


1
ตามที่อธิบายไว้ในเอกสารประกอบนั้น: หากตารางเพจจถูกสร้างขึ้นโดย code chunk ใน R Notebook คุณสามารถเพิ่มพารามิเตอร์rows.print=[n]เข้ากับตัวเลือก chunk เพื่อควบคุมจำนวนแถวที่แสดงต่อหน้า
Arthur Small

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.