如何在打印tibble时隐藏元数据,仅显示原始表格?
解决方法
以下几种方式可以帮你仅打印tibble的原始表格内容,去掉以#开头的额外行:
转换为data.frame后打印
tibble是data.frame的扩展,转换为普通data.frame后,打印输出不会包含额外的元信息行:print(as.data.frame(head(mtcars)))输出示例:
mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1使用
knitr::kable()生成简洁表格
如果需要更规整的纯文本表格,knitr包的kable()函数可以输出无额外元信息的表格:library(knitr) kable(head(mtcars))输出示例:
| | mpg| cyl| disp| hp| drat| wt| qsec| vs| am| gear| carb| |:----------------|----:|---:|----:|---:|----:|-----:|-----:|--:|--:|----:|----:| |Mazda RX4 | 21.0| 6| 160| 110| 3.90| 2.620| 16.46| 0| 1| 4| 4| |Mazda RX4 Wag | 21.0| 6| 160| 110| 3.90| 2.875| 17.02| 0| 1| 4| 4| |Datsun 710 | 22.8| 4| 108| 93| 3.85| 2.320| 18.61| 1| 1| 4| 1| |Hornet 4 Drive | 21.4| 6| 258| 110| 3.08| 3.215| 19.44| 1| 0| 3| 1| |Hornet Sportabout | 18.7| 8| 360| 175| 3.15| 3.440| 17.02| 0| 0| 3| 2| |Valiant | 18.1| 6| 225| 105| 2.76| 3.460| 20.22| 1| 0| 3| 1|自定义打印逻辑(进阶)
如果你不想依赖额外包,也可以捕获tibble的打印输出,过滤掉以#开头的行:print_clean_tibble <- function(x) { output <- capture.output(print(x)) cat(paste(output[!grepl("^#", output)], collapse = "\n"), "\n") } print_clean_tibble(as.tibble(head(mtcars)))输出示例:
mpg cyl disp hp drat wt qsec vs am gear carb 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
内容的提问来源于stack exchange,提问作者Jim d
相关产品推荐
相关产品推荐

