print.xtable与多行标题?

时间:2013-01-28 19:58:03

标签: r knitr xtable

我一直在尝试创建一个包含类似中断的标头的表。我在这里并不是太野心勃勃,并不关心我是否只是打破了很长的字符串或者只是一个两行标题。

dat <- matrix(round(rnorm(9, 20, 10)), 3, 3)
colnames(dat) <- c("some very long colname","short","another toooooooolong colname")
require(xtable)
m <- xtable(dat)

print(m,                  
              floating=FALSE, 
              hline.after=NULL,                  
              size="\\footnotesize",
              tabular.environment="tabular",
              add.to.row=list(pos=list(-1,0,nrow(m),0
                                       ), 
              command=c('\\toprule ',
                        '\\midrule ',
                        '\\bottomrule',
                        '\\\\ \\rowcolor[gray]{.9}'
                        )
                              )
              )

有没有办法对标题进行换行,因为我的表格不再适合页面了,尽管我已经使用landscape了。一些基于sanitize.rownames的技巧?摆弄\shortstack,但无法让它去......

1 个答案:

答案 0 :(得分:6)

(将我的评论写成正确答案)

在对xtable的调用中,您可以指定各种对齐参数,其中一个是固定宽度的parbox,文本将被包装。这是用p{1in}指定的,其中括号内指定的值是框(列)的宽度。您必须手动指定它(而不是让它适应可用空间),但它确实为您提供了一个包装文本的选项。