如何防止knitr打印##和矩阵索引/行号?

时间:2017-11-30 23:11:19

标签: r pdf printing knitr indices

假设我有一个矩阵,其中id列的每行不会增加1。

m <- matrix(c(1, "a", "c", 
              5, "g", "c", 
              4, "b", "c", 
              9, "g", "a"),
     ncol=3, byrow=TRUE)
colnames(m) <- c("id", "class", "type")

我尝试使用rownames(m) <- NULLrownames(m) <- c()重命名行,但我总是最后输出一个左侧有行号的输出:

     id  class type
[1,] "1" "a"   "c" 
[2,] "5" "g"   "c" 
[3,] "4" "b"   "c" 
[4,] "9" "g"   "a" 

此外,如果我在knitr中打印到PDF,我会让##跑到一边:

##      id  class type
## [1,] "1" "a"   "c" 
## [2,] "5" "g"   "c" 
## [3,] "4" "b"   "c" 
## [4,] "9" "g"   "a" 

我想打印一个只包含我输入矩阵的数据的pdf:

id  class type
"1" "a"   "c" 
"5" "g"   "c" 
"4" "b"   "c" 
"9" "g"   "a" 

1 个答案:

答案 0 :(得分:3)

您可以使用kable包中的knitr

m <- matrix(
  c(1, "a", "c", 5, "g", "c", 4, "b", "c", 9, "g", "a"),
  ncol=3,
  byrow=TRUE
)

colnames(m) <- c("id", "class", "type")

knitr::kable(m)

# |id |class |type |
# |:--|:-----|:----|
# |1  |a     |c    |
# |5  |g     |c    |
# |4  |b     |c    |
# |9  |g     |a    |

enter image description here

您还可以阅读优秀的kableExtrahere,这将为您提供一些出色的格式选项。

  

N.B。我的初步答案包括作为数据框投射,这在创建表时仍然是我常用的工作流程。但正如所指出的那样,kable将很乐意接受矩阵作为输入。