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

2024-01-05

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()- 就像上面的内容一样 - 但没有行号。


您可以捕获打印输出并用空格替换行号,然后劫持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)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有 row.names / 行号的情况下打印 tibble 的相关文章

  • Rsolnp:在 cbind(temp, funv) 中:结果的行数不是向量长度的倍数(arg 1)

    我是 stackoverflow 的新手 搜索了很多 但找不到我的问题的答案 我正在尝试使用优化包 Rsolnp 来最小化以下问题 尽管求解器为我提供了解决方案 但每次运行代码时我都会收到以下警告消息 警告消息 1 在 cbind temp
  • 在 r 中导出矩阵

    我想在 R 中导出一个矩阵 并保留行和列的名称 当我使用 write table 或 write csv 时 我得到一个带有新列的矩阵 我该如何使用这个功能 感谢您的帮助 您不会获得新列 行名称将保存为文本文件中的第一列 因此 您可以指定在
  • 计算一列中正数和负数的数量

    我想计算数据帧的一列中正值和负值的数量 我在 R 中该怎么做 例如 这里是数据框 logFC logCPM LR PValue FDR Bra15066 5 630822 5 184586 73 79927 8 647868e 18 4 0
  • 如何让 print() 将参数传递给 R 中用户定义的打印方法?

    我在 R 中定义了一个 S3 类 它需要自己的打印方法 当我创建这些对象的列表并打印它时 R 按其应有的方式对列表中的每个元素使用我的打印方法 我想对打印方法实际显示的数量进行一些控制 因此 我的类的 print 方法需要一些额外的参数 但
  • par(mfrow=c(1,2)) 不显示并排密度图[重复]

    这个问题在这里已经有答案了 par mfrow c 1 2 plot 1 12 log y plot 1 2 xaxs i 然而 当我尝试做并排密度图时 图会单独输出 load the stud recs dataset library U
  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 将 Instagram/youtube 嵌入 Shiny R 应用程序

    我想通过点击图表来播放 Instagram 或 Youtube 视频 例如显示异常值等 到目前为止 明确告诉 Shiny 视频内容是有效的 require shiny require ggplot2 data df lt data fram
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • API 请求和curl::curl_fetch_memory(url, handle = handle) 中的错误:SSL 证书问题:证书已过期

    几天前 我运行了代码几个月 没有任何问题 GET url myurl query 今天我遇到一个错误 Error in curl curl fetch memory url handle handle SSL certificate pro
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • 使用 Shiny 发布平行坐标图表时出现“错误:路径[1]="”:没有这样的文件或目录”

    我有一个似乎很常见但我还没有找到解决方案的问题 当尝试使用 rCharts Parcoords 发布 Web 应用程序时 出现以下错误 错误 路径 1 没有这样的文件或目录 奇怪的是 该应用程序在我的笔记本电脑上运行得很好 下面是我正在使用

随机推荐