我经常使用 tibbles 并且对它们非常满意。困扰我的唯一重复出现的问题是print(n = ...)
每次我想查看超过 10 行时都必须不断添加。我知道我可以使用 将它们转换为数据帧as.data.frame()
,但我更愿意print(n=100)
为所有小标题设置一个全局打印选项,例如 ,直到我决定更改它。
到目前为止,我一直在做的是
使用print(n=....)
library(dplyr)
mtcars %>%
as_tibble() %>%
print(n=20)
或使用as.data.frame()
mtcars %>%
as_tibble() %>%
as.data.frame()
或使用自定义函数(类似于 data.table 功能)
tar_head_tail <- function(data, nh = 15, nt = 15) {
library(dplyr)
library(crayon)
x <- data %>%
as.data.frame() %>%
tibble::rownames_to_column("row_number") %>%
head(n = nh)
y <- data %>%
as.data.frame() %>%
tibble::rownames_to_column("row_number") %>%
tail(n = nt)
head_tail <- bind_rows(x, y) %>%
tibble::column_to_rownames("row_number")
# Apply color
cat(green("Head:\n"))
print(x)
cat(red("\nTail:\n"))
print(y)
return(invisible(head_tail))
}
iris %>%
tar_head_tail()
在我们决定更改之前,如何为所有小标题设置全局打印(例如 print(n=20))选项?
更新:我的期望:
当我做:
mtcars %>%
as_tibble()
它应该在设置全局打印(n=20)后显示:
# A tibble: 32 × 11
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
11 17.8 6 168. 123 3.92 3.44 18.9 1 0 4 4
12 16.4 8 276. 180 3.07 4.07 17.4 0 0 3 3
13 17.3 8 276. 180 3.07 3.73 17.6 0 0 3 3
14 15.2 8 276. 180 3.07 3.78 18 0 0 3 3
15 10.4 8 472 205 2.93 5.25 18.0 0 0 3 4
16 10.4 8 460 215 3 5.42 17.8 0 0 3 4
17 14.7 8 440 230 3.23 5.34 17.4 0 0 3 4
18 32.4 4 78.7 66 4.08 2.2 19.5 1 1 4 1
19 30.4 4 75.7 52 4.93 1.62 18.5 1 1 4 2
20 33.9 4 71.1 65 4.22 1.84 19.9 1 1 4 1
# ℹ 12 more rows
我想避免额外的print(n=....)
, 或print()
等行...
dplyr
和其他tidyverse
包导入pillar
用于格式化打印输出。该文档列出了控制小标题打印方式的各种选项。对于行: