我已经成功创建了一个表,可以按如下方式运行:
library(xtable)
print(x, floating.environment='sidewaystable', inlude.rownames=F)
请注意,只有当桌子侧向旋转时,它才能放在页面上。
我现在想操作这些条目,在表中的百分比周围添加一个databar
(参见此处)命令
例如:
x <- print(xtable(x, caption="My table"), include.rownames=F
x <- gsub("(\d{1,3}\.\d{2})","\\databar{\1}",x)
问题是x
现在是一个字符向量,我不能再使用print(x, floating.environment='sidewaystable', inlude.rownames=F)
了。
我可以使用cat(x, 'n')
绘制表格,但当然那时它不会侧向旋转。
有什么想法吗?
解决方案可以是在使用xtable
函数之前放置databar
,如下所示:
d1 <- data.frame(x1 = c("A", "B", "C", "D", "E", "F"), x2 = runif(6)*100)
d1
# x1 x2
# 1 A 0.2890781
# 2 B 99.9268717
# 3 C 70.0964751
# 4 D 90.7419767
# 5 E 58.6721176
# 6 F 38.5582817
d1$x3 <- paste0("\databar{", round(d1$x2, 2), "}")
d1
# x1 x2 x3
# 1 A 0.2890781 \databar{0.29}
# 2 B 99.9268717 \databar{99.93}
# 3 C 70.0964751 \databar{70.1}
# 4 D 90.7419767 \databar{90.74}
# 5 E 58.6721176 \databar{58.67}
# 6 F 38.5582817 \databar{38.56}
library(xtable)
print(xtable(d1), sanitize.text.function=function(x) x)
# begin{table}[ht]
# centering
# begin{tabular}{rlrl}
# hline
# & x1 & x2 & x3 \
# hline
# 1 & A & 0.29 & databar{0.29} \
# 2 & B & 99.93 & databar{99.93} \
# 3 & C & 70.10 & databar{70.1} \
# 4 & D & 90.74 & databar{90.74} \
# 5 & E & 58.67 & databar{58.67} \
# 6 & F & 38.56 & databar{38.56} \
# hline
# end{tabular}
# end{table}
请注意,您必须重新定义sanitize.text.function
参数,因此要小心特殊字符。