【问题标题】:print.xtable with multi-line header?带有多行标题的 print.xtable?
【发布时间】:2013-01-28 19:58:03
【问题描述】:

我一直在尝试创建一个表头,其中包含一个类似的中断。我在这里并没有太大的野心,我并不真正关心我是否只是打破了极长的字符串或一般只有两行标题。

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,但无法让它去......

【问题讨论】:

  • align 参数中使用"p{}" 选项到xtable 怎么样?
  • 谢谢布赖恩。实际上是使用xtable(dat,digits=2,align=c("l",rep("r",ncol(dat)))) 之类的东西,但没有考虑 p{} 参数。非常感谢您的指点,这正是我看不到的。

标签: r knitr xtable


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    相关资源
    最近更新 更多