我不确定这是一个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))
@
我得到一个包含计数的好表,但是行和列都有相同的表示法。如何添加标签以使其更清晰?
答案 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
会列出包含两个元素的列表:pos
和command
。 pos
是一个长度与command
相同的列表,它是一个向量。 pos
的每个元素都是表格中您放置command
的相应元素的行。
在这里,我希望前两行是标签所在的位置。我将pos
的第一个和第二个元素设置为0,表示我把东西放在桌子的顶部。 0位置是表格中两个水平规则之间的位置。
\\\\\n
在LaTeX代码中生成'\\',该代码在表的每一行末尾加上一个换行符。
xtable
的帮助有add.to.row
的好例子以获取更多信息。