假设我有一个矩阵,其中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) <- NULL
或rownames(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"
答案 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 |
您还可以阅读优秀的kableExtra
包here,这将为您提供一些出色的格式选项。
N.B。我的初步答案包括作为数据框投射,这在创建表时仍然是我常用的工作流程。但正如所指出的那样,
kable
将很乐意接受矩阵作为输入。