您可以捕获打印输出并用空格替换行号,然后劫持tibble:::print.tbl
tibble::as_tibble(mtcars)
# A tibble: 32 x 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
# … with 22 more rows
print.tbl <- function(x) {
## tibble:::print.tbl
o <- capture.output(tibble::as_tibble(x))
m <- gregexpr('^ *\\d+', o)
regmatches(o, m) <- ' '
cli::cat_line(o)
invisible(x)
}
tibble::as_tibble(mtcars)
# A tibble: 32 x 11
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
21 6 160 110 3.9 2.62 16.5 0 1 4 4
21 6 160 110 3.9 2.88 17.0 0 1 4 4
22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
24.4 4 147. 62 3.69 3.19 20 1 0 4 2
22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
# … with 22 more rows
edit
这是另一个具有更多功能的尝试。你可以通过n
, width
, or n_extra
to tibble:::print.tbl
照常:
x <- tibble::as_tibble(mtcars)
print(x, n = 3, width = 60, n_extra = 1)
# A tibble: 32 x 11
mpg cyl disp hp drat wt qsec vs am
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 21 6 160 110 3.9 2.62 16.5 0 1
2 21 6 160 110 3.9 2.88 17.0 0 1
3 22.8 4 108 93 3.85 2.32 18.6 1 1
# … with 29 more rows, and 2 more variables: gear <dbl>, …
您还可以排除行名称、维度和变量类或任意组合:
print(x, row.names = FALSE, dims = FALSE, classes = FALSE, n = 3)
mpg cyl disp hp drat wt qsec vs am gear carb
21 6 160 110 3.9 2.62 16.5 0 1 4 4
21 6 160 110 3.9 2.88 17.0 0 1 4 4
22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
# … with 29 more rows
这是该功能,但要获得这些额外功能,您必须使用print(x)
where x
属于班级tbl
而不是仅仅x
.
print.tbl <- function(x, ..., row.names = TRUE, classes = TRUE, dims = TRUE) {
## tibble:::print.tbl
o <- capture.output(tibble:::print.tbl(tibble::as_tibble(x), ...))
if (!row.names) {
m <- gregexpr('^ *\\d+', o)
regmatches(o, m) <- ' '
}
if (!classes)
o <- o[!grepl('^ +<...>', o)]
if (!dims)
o <- o[!grepl('^# A tibble.*', o)]
cli::cat_line(o)
invisible(x)
}