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
Run Code Online (Sandbox Code Playgroud)
我可以在争论tibble:::print.tbl()或其他情况下禁止打印这些数字吗?我知道我可以使用:row.names = FALSE中的参数,但是我没有得到它作为小标题的所有其他不错的打印选项,它只是像常规 data.frame 一样打印。print.data.frameprint.data.frame(as_tibble(mtcars), row.names = FALSE)
我想保持输出与print.tbl()上面的输出相同,但没有行号。
行名称由pillar::squeeze. 您可以创建一个副本squeeze(此处为源代码),并注释掉相关部分:
squeeze <- function(x, width = NULL, ...) {\n zero_height <- length(x) == 0L || length(x[[1]]) == 0L\n if (zero_height) {\n return(new_colonnade_sqeezed(list(), colonnade = x, extra_cols = seq_along(x)))}\n if (is.null(width)) {width <- pillar:::get_width(x)}\n if (is.null(width)) {width <- getOption("width")}\n rowid <- pillar:::get_rowid_from_colonnade(x)\n if (is.null(rowid)) {\n rowid_width <- 0 } \n else { rowid_width <- max(pillar:::get_widths(rowid)) + 1L }\n col_widths <- pillar:::colonnade_get_width(x, width, rowid_width)\n col_widths_show <- split(col_widths, factor(col_widths$tier != 0, levels = c(FALSE, TRUE)))\n col_widths_shown <- col_widths_show[["TRUE"]]\n col_widths_tiers <- split(col_widths_shown, col_widths_shown$tier)\n out <- map(col_widths_tiers, function(tier) {\n map2(tier$pillar, tier$width, pillar:::pillar_format_parts)\n })\n #if (!is.null(rowid)) {\n # rowid_formatted <- pillar:::pillar_format_parts(rowid, rowid_width - 1L)\n # out <- map(out, function(x) c(list(rowid_formatted), x))\n #}\n extra_cols <- rlang:::seq2(nrow(col_widths_shown) + 1L, length(x))\n pillar:::new_colonnade_sqeezed(out, colonnade = x, extra_cols = extra_cols)\n}\nRun Code Online (Sandbox Code Playgroud)\n然后将新版本分配到pillar命名空间中,就可以了。
library(tidyverse)\nassignInNamespace("squeeze", squeeze, ns = "pillar")\nas_tibble(mtcars)\n# A tibble: 32 x 11\n mpg cyl disp hp drat wt qsec vs am gear carb\n<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>\n 21 6 160 110 3.9 2.62 16.5 0 1 4 4\n 21 6 160 110 3.9 2.88 17.0 0 1 4 4\n 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1\n 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1\n 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2\n 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1\n 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4\n 24.4 4 147. 62 3.69 3.19 20 1 0 4 2\n 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2\n 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4\n# \xe2\x80\xa6 with 22 more rows\nRun Code Online (Sandbox Code Playgroud)\n