4

我不确定这是 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))
@

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

4

1 回答 1

11

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

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

您还可以在调用中添加表格标题xtable

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

您可以使用caption.placement来告诉在哪里放置标题。

编辑:

根据评论,我没有回答上面的问题。为了使xtable打印更像table级别上方的标签,您可以add.to.rowprint.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接受一个包含两个元素的列表:poscommand。 是一个列表,其长度与它是一个向量pos的长度相同。command的每个元素pos是表中放置 的相应元素的行command

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

\\\\\nLaTeX 代码中生成 '\\' ,该代码用于表的每一行的末尾加上一个换行符。

的帮助xtable有一个很好的例子来add.to.row获取更多信息。

于 2013-11-07T21:31:58.753 回答