234

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

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

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

是否有 dplyr 命令来抵消这种情况或解开数据框的方法?

4

7 回答 7

279

你也可以使用

print(tbl_df(df), n=40)

或在管道操作员的帮助下

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

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

编辑 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)

于 2014-12-04T13:10:57.753 回答
98

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

如果您希望这是默认值,您可以更改该dplyr.print_max选项的值。

options(dplyr.print_max = 1e9)
于 2014-04-21T00:13:08.283 回答
77

tibble小插图有一种更新的方式来更改其默认打印行为:

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

options(pillar.print_max = n, pillar.print_min = m): 如果多于 n 行,则只打印前 m 行。使用 options(pillar.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)
于 2017-01-28T03:09:17.817 回答
7

bookdown 文档中所述,您还可以使用分页表

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

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

在此处输入图像描述

于 2019-06-20T07:58:46.043 回答
2

我更喜欢把 tibble 变成 data.frame。它显示了一切,你就完成了

df %>% data.frame 
于 2019-12-06T09:21:50.700 回答
2

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

df %>% View()

View(df)
于 2020-08-09T00:59:09.313 回答
0

如果您想使用管道并且发现自己非常想查看整个 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()
于 2021-07-08T00:43:52.907 回答