R语言中如何隐藏数据框显示时的自动行号?
问题描述
我有如下数据框:
table_a = structure(list(elephant = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 4L, 4L, 5L, 5L), elephant_status = c("performing", "performing", "performing", "performing", "performing", "performing", "performing", "performing", "performing", "performing", "performing", "performing" ), year = c(2015L, 2016L, 2017L, 2018L, 2018L, 2019L, 2020L, 2015L, 2018L, 2019L, 2016L, 2021L), year_escaped = c("2018", "2018", "2018", "2018", "2022", "2022", "2022", "2015", "NULL", "NULL", "NULL", "NULL")), class = "data.frame", row.names = c(NA, -12L))
查看数据框时,左侧会显示自动生成的行号:
elephant elephant_status year year_escaped 1 1 performing 2015 2018 2 1 performing 2016 2018 3 1 performing 2017 2018 4 1 performing 2018 2018 5 2 performing 2018 2022 6 2 performing 2019 2022 7 2 performing 2020 2022 8 3 performing 2015 2015 9 4 performing 2018 NULL 10 4 performing 2019 NULL 11 5 performing 2016 NULL 12 5 performing 2021 NULL
我尝试过rownames(table_a) = NULL,但显示时左侧行号仍然存在,请问如何编写R代码让显示数据框时不显示这些行号?
解决方法
有几种不同的方法可以实现显示数据框时隐藏行号,根据使用场景选择:
1. 基础R的print()函数控制
直接使用print()函数并设置row.names = FALSE参数,就能在显示时隐藏行号:
print(table_a, row.names = FALSE)
输出效果:
elephant elephant_status year year_escaped 1 performing 2015 2018 1 performing 2016 2018 1 performing 2017 2018 1 performing 2018 2018 2 performing 2018 2022 2 performing 2019 2022 2 performing 2020 2022 3 performing 2015 2015 4 performing 2018 NULL 4 performing 2019 NULL 5 performing 2016 NULL 5 performing 2021 NULL
2. 转为tibble格式(推荐)
tibble是tidyverse生态中的数据结构,默认显示时不包含传统行号,格式更清晰。先安装并加载tibble包,然后转换数据框:
# 首次使用时安装包 install.packages("tibble") # 加载包并转换 library(tibble) table_a_tbl <- as_tibble(table_a) # 直接查看即可 table_a_tbl
输出效果类似:
# A tibble: 12 × 4 elephant elephant_status year year_escaped <int> <chr> <int> <chr> 1 1 performing 2015 2018 2 1 performing 2016 2018 3 1 performing 2017 2018 4 1 performing 2018 2018 5 2 performing 2018 2022 6 2 performing 2019 2022 7 2 performing 2020 2022 8 3 performing 2015 2015 9 4 performing 2018 NULL 10 4 performing 2019 NULL 11 5 performing 2016 NULL 12 5 performing 2021 NULL
这里的数字是tibble的行索引标记,并非传统行号,且大数据集只会显示部分行,更实用。
3. 在R Markdown中使用knitr::kable()
如果是在R Markdown文档中输出表格,使用knitr包的kable()函数,设置row.names = FALSE即可隐藏行号:
library(knitr) kable(table_a, row.names = FALSE)
输出的表格不会包含行号,适合生成报告类文档。
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

