我正在使用R studio和R markdown(带有knitr
)来创建我的结果的pdf或html报告。然后,我使用了函数kable
来使表格在PDF输出上看起来不错,或者使用了库htmlTable
的函数expss
来进行html输出。我创建了一个大表,例如:
cbind(row.number=1:10,iris[1:10,],iris[1:10,],iris[1:10,]) -> tbl1
问题在于此表中的列过多,超出了纸张的宽度。有没有一种方法可以包装表,其中一列重复作为第一列。使用上面示例中的表,输出应类似于:
row.number Sepal.Length Sepal.Width Petal.Length
1 1 5.1 3.5 1.4
2 2 4.9 3.0 1.4
3 3 4.7 3.2 1.3
row.number Petal.Width Species Sepal.Length
1 1 0.2 setosa 5.1
2 2 0.2 setosa 4.9
3 3 0.2 setosa 4.7
row.number Sepal.Width Petal.Length Petal.Width
1 1 3.5 1.4 0.2
2 2 3.0 1.4 0.2
3 3 3.2 1.3 0.2
如此继续。我只是手工创建的,还没有解决问题:)
我在这里看到可以减小表的大小,但这并不依赖于我在寻找什么。 Automatically adjust LaTeX table width to fit pdf using knitr and Rstudio
答案 0 :(得分:0)
我觉得我可能在这里遗漏了一些明显的东西,但我不明白为什么您不能将表上的行名设置为您的 row.number 列然后只需创建一个循环,为每3列的批处理创建一个表。
不是
cbind(iris[1:10,],iris[1:10,],iris[1:10,]) -> tbl1
rownames(tbl1) <- 1:10
kable(tbl1[,1:3])
kable(tbl1[,4:7])
kable(tbl1[,8:10])
你想做什么?