将标题添加到xtable

时间:2013-11-07 21:12:14

标签: r sweave

我不确定这是一个R问题还是一个Sweave问题。我在一张简单的桌子(3年级和6年级)中从2个时间点看学生的标记。我创建了桌子并打印,但是我想添加标签,以便人们知道哪个标记来自哪个等级。

我的Sweave代码是:

<<MakeData,results='asis'>>=
library(xtable)
Grade3 <- c("A","B","B","A","B","C","C","D","A","B","C","C","C","D","B","B","D","C","C","D")
Grade6 <- c("A","A","A","B","B","B","B","B","C","C","A","C","C","C","D","D","D","D","D","D")
Cohort <- table(Grade3,Grade6)
print(xtable(Cohort))
@

我得到一个包含计数的好表,但是行和列都有相同的表示法。如何添加标签以使其更清晰?

1 个答案:

答案 0 :(得分:9)

要更改Cohort的标签,请更改列和rownames:

rownames(Cohort) <- 1:4
colnames(Cohort) <- 5:8

您还可以向xtable电话添加表格标题:

print(xtable(Cohort, caption = 'My Title'), caption.placement = 'top')

您可以使用caption.placement告知标题的放置位置。

修改

根据评论,我没有回答上述问题。要使xtable打印更像table,并使用级别以上的标签,请在add.to.row函数中使用print.xtable

addtorow <- list()
addtorow$pos <- list()
addtorow$pos[[1]] <- 0
addtorow$pos[[2]] <- 0
addtorow$command <- c('& & Grade 6 & & \\\\\n', "Grade 3 & A & B & C & D \\\\\n")
print(xtable(Cohort, caption = 'My Title'), caption.placement = 'top', 
      add.to.row = addtorow, include.colnames = FALSE)

add.to.row会列出包含两个元素的列表:poscommandpos是一个长度与command相同的列表,它是一个向量。 pos的每个元素都是表格中您放置command的相应元素的行。

在这里,我希望前两行是标签所在的位置。我将pos的第一个和第二个元素设置为0,表示我把东西放在桌子的顶部。 0位置是表格中两个水平规则之间的位置。

\\\\\n在LaTeX代码中生成'\\',该代码在表的每一行末尾加上一个换行符。

xtable的帮助有add.to.row的好例子以获取更多信息。