在tbl_df中包装时查看整个数据框?

Zhe*_*ang 164 r options dplyr display

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

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

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

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

小智 202

你也可以用

print(tbl_df(df), n=40)
Run Code Online (Sandbox Code Playgroud)

或在管道操作员的帮助下

df %>% tbl_df %>% print(n=40)
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你不想担心`n`的值并且你已经在管道上,你可以使用`df%>%tbl_df%>%print(n = nrow(.))` (26认同)
  • 扩展@ BLT的答案,你可以设置`n = Inf`来打印所有行. (17认同)
  • `print`(带有tibble)也有`width =`和`n_extra =`选项来控制直接或间接打印的列数. (9认同)
  • @ClaytonJY我也发现`tbl_df%>%print(n = Inf)`可以解决这个问题。 (3认同)

Vin*_*ynd 82

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

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

options(dplyr.print_max = 1e9)
Run Code Online (Sandbox Code Playgroud)


BLT*_*BLT 53

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)
Run Code Online (Sandbox Code Playgroud)

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

options(tibble.print_max = 50)
Run Code Online (Sandbox Code Playgroud)

但这会将打印限制为50行:

options(tibble.print_max = 50, tibble.print_min = 50)
Run Code Online (Sandbox Code Playgroud)

  • 这将更改所有小标题的默认行为。我正在寻找一种方法来覆盖默认约束。`print(n=100)` 似乎做我想做的。(例如,来自 `count()` 的汇总表应该完整显示,而我确实希望我的数据表被截断。) (2认同)
  • @dannid看起来像你想要接受的答案. (2认同)

Hol*_*ndl 7

正如bookdown 文档中详述的那样,您还可以使用分页表

mtcars %>% tbl_df %>% rmarkdown::paged_table()
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

  • 如该文档中所述:如果分页表是由 R Notebook 中的代码块生成的,则可以将参数“rows.print=[n]”添加到块选项中以控制每页显示的行数。 (2认同)