显示/打印小标题的所有行(tbl_df)


192

tibble(以前是tbl_df)由R中的dplyr数据帧操作包创建的数据帧的版本。它防止在意外调用数据帧时产生长表输出。

tibble/ 包裹数据框后tbl_df,是否有命令查看整个数据框(数据框的所有行和列)?

如果使用df[1:100,],我将看到全部100行,但是如果使用df[1:101,],它将仅显示前10行。我想轻松显示所有行以快速滚动它们。

是否有dplyr命令来抵消此问题或解包数据帧的方法?


4
View"tbl_df"对象保持不变。
G. Grothendieck 2014年

10
@ G.Grothendieck查看与打印不同。
Meg

Answers:


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(.))
ClaytonJY

18
扩展@BLT​​的答案,您可以设置n = Inf打印所有行。
seasmith '17

10
print(带有小标题)还具有width = n_extra = 选项,以控制直接或间接打印多少列。
张哲

3
@ClaytonJY我也发现tbl_df %>% print(n = Inf)可以为此工作。
丹妮德

有人知道为什么print(n = ...)在小标题显示中打开科学计数法吗?
敏捷豆


66

tibble小品有一个更新的方式更改其默认的打印行为:

您可以使用以下选项控制默认外观:

options(tibble.print_max = n, tibble.print_min = m):如果多于n行,则仅打印前m行。使用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
这将更改所有小标题的默认行为。我正在寻找一种方法来覆盖默认约束。print(n=100)似乎可以满足我的要求。(count()例如,来自的汇总表应该完整显示,而我确实希望我的数据表被截断。)
Dannid

2
@dannid看起来像您想要接受的答案。
BLT

5

书本文档中所述,您还可以使用分页表格

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

这将对数据进行分页,并允许浏览所有行和列(除非配置为对行进行上限)。例:

在此处输入图片说明


1
如该文档中所述:如果分页表是由R Notebook中的代码块生成的,则可以将参数添加rows.print=[n]到块选项中,以控制每页显示的行数。
亚瑟·小

0

我更喜欢将小标题转到data.frame。它显示了一切,您已经完成

df %>% data.frame 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.