显示/打印 tibble 的所有行(tbl_df)

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

一旦数据帧被 tibble/tbl_df包装,是否有一个命令来查看整个数据帧(数据帧的所有行和列) ?

如果我使用 df[1:100,],我将看到所有100行,但如果我使用 df[1:101,],它将只显示前10行。我希望能够轻松地显示所有行,以便快速滚动它们。

是否有一个 dplyr 命令来抵消这种情况,或者有一种方法来展开数据帧?

171185 次浏览

你可以使用as.data.frameprint.data.frame

如果你想让它成为默认值,你可以改变dplyr.print_max选项的值。

options(dplyr.print_max = 1e9)

你也可以用

print(tbl_df(df), n=40)

或者在管道操作员的帮助下

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

要打印所有行,请指定tbl_df %>% print(n = Inf)

< p >编辑31.07.2021: 在比;dplyr 1.0.0 < / >强

Warning message:
`tbl_df()` was deprecated in dplyr 1.0.0.
Please use `tibble::as_tibble()` instead.

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

宠物猫装饰图案有一个更新的方法来改变它的默认打印行为:

你可以用选项控制默认外观:

options(pillar.print_max = n, pillar.print_min = m):如果有超过n行,只打印前m行。使用选项(支柱。print_max = Inf)总是显示所有行。

options(pillar.width = n):水平使用n个字符槽来显示数据。如果n >getOption("width"),这将导致多层。使用options(pillar.width = Inf)始终打印所有列,不管屏幕的宽度如何。

例子

这将始终打印所有行:

options(pillar.print_max = Inf)

这实际上不会将打印限制在50行:

options(pillar.print_max = 50)

但这将限制打印50行:

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

正如bookdown文档中详细描述的那样,你也可以使用分页表

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

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

enter image description here

我更喜欢把标题转到数据帧。它会显示所有内容,你就完成了

df %>% data.frame

你可以在Rstudio中使用View()更方便地打印它:

df %>% View()


View(df)

如果你想要使用管道,并且发现自己想要看到整个tibble,这里有一个函数showAll()的解决方案:

showAll<-function(tbl_df){
print(tbl_df,n=nrow(tbl_df))
}


require(tibble)
#Truncated tibble (default)
mtcars %>% as_tibble()


#Full size tibble
mtcars %>% as_tibble() %>% showAll()