tibble
(以前tbl_df
)是由 R 中的数据框操作包创建的数据框的一个版本dplyr
。它在意外调用数据框时防止长表输出。
一旦数据框被tibble
/包裹tbl_df
,是否有命令查看整个数据框(数据框的所有行和列)?
如果我使用df[1:100,]
,我将看到所有 100 行,但如果我使用df[1:101,]
,它只会显示前 10 行。我想轻松显示所有行以快速滚动浏览它们。
是否有 dplyr 命令来抵消这种情况或解开数据框的方法?
你也可以使用
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)
您可以使用as.data.frame
或print.data.frame
。
如果您希望这是默认值,您可以更改该dplyr.print_max
选项的值。
options(dplyr.print_max = 1e9)
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)
如bookdown 文档中所述,您还可以使用分页表
mtcars %>% tbl_df %>% rmarkdown::paged_table()
这将对数据进行分页并允许浏览所有行和列(除非配置为限制行)。例子:
我更喜欢把 tibble 变成 data.frame。它显示了一切,你就完成了
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()