Hiển thị / in tất cả các hàng của một tibble (tbl_df)


192

tibble(trước đây tbl_df) là phiên bản của khung dữ liệu được tạo bởi dplyrgói thao tác khung dữ liệu trong R. Nó ngăn đầu ra của bảng dài khi vô tình gọi khung dữ liệu.

Khi khung dữ liệu đã được bọc bởi tibble/ tbl_df, có lệnh nào để xem toàn bộ khung dữ liệu không (tất cả các hàng và cột của khung dữ liệu)?

Nếu tôi sử dụng df[1:100,], tôi sẽ thấy tất cả 100 hàng, nhưng nếu tôi sử dụng df[1:101,], nó sẽ chỉ hiển thị 10 hàng đầu tiên. Tôi muốn dễ dàng hiển thị tất cả các hàng để nhanh chóng cuộn qua chúng.

Có một lệnh dplyr để chống lại điều này hoặc một cách để mở khóa khung dữ liệu?


4
Viewkhông thay đổi với "tbl_df"các đối tượng.
G. Grothendieck

10
@ G.Grothendieck Xem khác với in.
Meg

Câu trả lời:


229

Bạn cũng có thể sử dụng

print(tbl_df(df), n=40)

hoặc với sự giúp đỡ của người vận hành đường ống

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

Để in tất cả các hàng chỉ định tbl_df %>% print(n = Inf)


28
nếu bạn không muốn lo lắng về giá trị của nvà bạn đã sẵn sàng, bạn có thể sử dụngdf %>% tbl_df %>% print(n = nrow(.))
ClaytonJY

18
Mở rộng câu trả lời của @ BLT, bạn có thể đặt n = Infđể in tất cả các hàng.
biển

10
print(với một tibble) cũng có width = n_extra = các tùy chọn để kiểm soát số lượng cột được in, trực tiếp hoặc gián tiếp.
Zhe Zhang

3
@ClaytonJY Tôi cũng đã tìm thấy tbl_df %>% print(n = Inf)để làm việc này.
Dannid

Có ai biết tại sao print(n = ...)bật ký hiệu khoa học trong màn hình hiển thị không?
Đậu Agile

87

Bạn có thể sử dụng as.data.framehoặc print.data.frame.

Nếu bạn muốn đây là mặc định, bạn có thể thay đổi giá trị của dplyr.print_maxtùy chọn.

options(dplyr.print_max = 1e9)

66

Các họa tiết tibble có một cách cập nhật để thay đổi hành vi in ​​mặc định của nó:

Bạn có thể kiểm soát giao diện mặc định với các tùy chọn:

options(tibble.print_max = n, tibble.print_min = m): nếu có nhiều hơn n hàng, chỉ in m hàng đầu tiên. Sử dụng options(tibble.print_max = Inf)để luôn hiển thị tất cả các hàng.

options(tibble.width = Inf) sẽ luôn in tất cả các cột, bất kể chiều rộng của màn hình.

ví dụ

Điều này sẽ luôn in tất cả các hàng:

options(tibble.print_max = Inf)

Điều này sẽ không thực sự giới hạn in tới 50 dòng:

options(tibble.print_max = 50)

Nhưng điều này sẽ hạn chế in tới 50 dòng:

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

1
Điều này sẽ thay đổi hành vi mặc định cho tất cả các tibble. Tôi đang tìm cách ghi đè các ràng buộc mặc định. print(n=100)xuất hiện để làm những gì tôi muốn. ( count()Ví dụ, các bảng tóm tắt sẽ hiển thị toàn bộ, trong khi tôi muốn các bảng dữ liệu của mình bị cắt ngắn.)
Dannid

2
@dannid có vẻ như bạn muốn câu trả lời được chấp nhận, sau đó.
BLT

5

Như chi tiết trong tài liệu bookdown , bạn cũng có thể sử dụng bảng phân trang

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

Điều này sẽ phân trang dữ liệu và cho phép duyệt tất cả các hàng và cột (trừ khi được định cấu hình để giới hạn các hàng). Thí dụ:

nhập mô tả hình ảnh ở đây


1
Như được mô tả trong tài liệu đó: Nếu bảng phân trang được tạo bởi một đoạn mã trong Sổ ghi chép R, bạn có thể thêm tham số rows.print=[n]vào các tùy chọn khối để kiểm soát số lượng hàng được hiển thị trên mỗi trang.
Arthur Nhỏ

0

Tôi thích biến tibble thành data.frame. Nó cho thấy tất cả mọi thứ và bạn đã hoàn thành

df %>% data.frame 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.