我不确定这是一个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))
@
Run Code Online (Sandbox Code Playgroud)
我得到一个很好的表计数,但行和列都有相同的表示法.如何添加标签以使其更清晰?
要更改标签Cohort,请更改列和rownames:
rownames(Cohort) <- 1:4
colnames(Cohort) <- 5:8
Run Code Online (Sandbox Code Playgroud)
您还可以为xtable通话添加表格标题:
print(xtable(Cohort, caption = 'My Title'), caption.placement = 'top')
Run Code Online (Sandbox Code Playgroud)
你可以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)
Run Code Online (Sandbox Code Playgroud)
add.to.row采用包含两个元素的列表:pos和command. pos是一个长度与command矢量相同的列表.每个元素pos都是表中放置相应元素的行command.
在这里,我希望前两行是标签所在的位置.我将第一个和第二个元素设置pos为0,表示我把东西放在表格的顶部.0位置是表中两个水平规则之间的位置.
的\\\\\n产生,其在表中的每一行加上一个新行字符的结束使用的胶乳代码"\\".
帮助xtable有一个很好的例子来add.to.row获取更多信息.