gpt4 book ai didi

r - 如何在没有 row.names/行号的情况下打印 tibble

转载 作者:行者123 更新时间:2023-12-04 01:08:52 25 4
gpt4 key购买 nike

Tibbles 以行号作为行名打印。见 1, 2在下面的左边距中:

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
我可以在 tibble:::print.tbl() 的参数中禁止打印这些数字吗?否则?我知道我可以使用 row.names = FALSE参数在 print.data.frame : print.data.frame(as_tibble(mtcars), row.names = FALSE)但是后来我没有得到所有其他不错的打印选项,因为它是一个小标题,它只是像普通的 data.frame 一样打印。
我想保持输出与 print.tbl() 相同- 就像上面的一样,这里 - 但没有行号。

最佳答案

行名称由 pillar::squeeze 应用.您可以创建 squeeze 的副本函数 ( source here ) 并注释掉相关部分:

squeeze <- function(x, width = NULL, ...) {
zero_height <- length(x) == 0L || length(x[[1]]) == 0L
if (zero_height) {
return(new_colonnade_sqeezed(list(), colonnade = x, extra_cols = seq_along(x)))}
if (is.null(width)) {width <- pillar:::get_width(x)}
if (is.null(width)) {width <- getOption("width")}
rowid <- pillar:::get_rowid_from_colonnade(x)
if (is.null(rowid)) {
rowid_width <- 0 }
else { rowid_width <- max(pillar:::get_widths(rowid)) + 1L }
col_widths <- pillar:::colonnade_get_width(x, width, rowid_width)
col_widths_show <- split(col_widths, factor(col_widths$tier != 0, levels = c(FALSE, TRUE)))
col_widths_shown <- col_widths_show[["TRUE"]]
col_widths_tiers <- split(col_widths_shown, col_widths_shown$tier)
out <- map(col_widths_tiers, function(tier) {
map2(tier$pillar, tier$width, pillar:::pillar_format_parts)
})
#if (!is.null(rowid)) {
# rowid_formatted <- pillar:::pillar_format_parts(rowid, rowid_width - 1L)
# out <- map(out, function(x) c(list(rowid_formatted), x))
#}
extra_cols <- rlang:::seq2(nrow(col_widths_shown) + 1L, length(x))
pillar:::new_colonnade_sqeezed(out, colonnade = x, extra_cols = extra_cols)
}
然后将新版本分配到 pillar命名空间,你就设置好了。
library(tidyverse)
assignInNamespace("squeeze", squeeze, ns = "pillar")
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

关于r - 如何在没有 row.names/行号的情况下打印 tibble,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65460421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com