我尝试使用print.xtable
add.to.row
来获取如下格式的表:
运动
share of ballers 22.3
share of skiers 4.6
成瘾
share of smokers 20.3
share of drinkers 6.6
我的R表确实包含额外的row.names,即使这些行不包含任何值。我使用add.to.row选项将颜色添加到不同的行,如建议的here,这些行工作正常。但是不起作用的是在xtable中添加粗体文本或在行之间添加额外的hline
。我总是收到如下错误消息:
Bad type area settings!
检测到的线宽比启发式确定的线宽大约52%(类型区域)。
所以这可能意味着由于我的变化,桌子对于它的环境变得很大,但是不知道如何处理它。注意我已经阅读了像one这样修改xtable输出本身的帖子,但即使这对我来说可能也是可行的,我正在寻找一个更简单的解决方案。因为如果我选择这个解决方案,我必须capture.output
并使用regexp替换来添加内容。
有解决方法吗?或者是否有更简单的解决方案?
答案 0 :(得分:11)
对于hline
部分,请参阅?print.xtable
。
hline.after
:当'type="latex"
'时,数字向量介于-1和之间 '"nrow(x)"
',包括在内,表示a之后的行 应出现水平线
要加粗所有行名称:
bold.allrows <- function(x) {
h <- paste('\\textbf{',x,'}', sep ='')
h
}
print(xtable(yourTable),
sanitize.rownames.function = bold.allrows)
要加入一些行名称,您可以为这些行添加“特殊标记”,例如BOLD
:
bold.somerows <-
function(x) gsub('BOLD(.*)',paste('\\\\textbf{\\1','}'),x)
print(xtable(yourTable),
sanitize.rownames.function = bold.somerows)
e.g:
require(xtable)
hh <- head(mtcars)[ , c(1:5)]
## I want to bold 1 and 3 rows
rownames(hh)[c(1, 3)] <- paste('BOLD', rownames(hh)[c(1, 3)])
print(xtable(hh), sanitize.rownames.function = bold.somerows)