我正在使用R包"sparkTable“为PDF报告创建一些减价表。我有我想要的表格和图表,但我似乎没有看到在表格中格式化文本的任何规定。在诸如“可使用”和“pander”之类的东西上,您可以格式化文本的位置,只是似乎找不到使用sparkTable的方法。也许有一些LaTeX的方法可以做到这一点。如果有人有主意的话,我会很棒的。谢谢!
发布于 2016-01-29 17:48:09
好的,-I想出了答案。原来,sparkTable使用R中的xtable包来格式化输出--默认情况下,一旦转换为LaTeX,表的部分中的对齐方式是:
开始{表格}{rllll}
这是没有通过任何选择。我在包源代码中找到了"methods.R“脚本,并添加了以下选项:
对齐= 'rccccc‘
两个位置的xtable选项(第1287和1314行):
1287:打印(xT <- xtable(m,print=‘rcccc’),sanitize.text.function =函数(X){x},comment=infonote)
1314:打印(xT <- xtable(m,对齐=‘rcccc’),sanitize.text.function =函数(X){x})
一旦完成,我构建了软件包并重新安装了它。我重新运行的针织到pdf上的标记和瞧!我的数据集中在后面的列中。
我知道这更像是一种自定义解决方案,但我只将它用于一组数据,并且它可以满足我的需要。由于sparkTable在自己的代码中使用xtable,所以我无法传递这些选项(据我所知),所以我在源代码中对其进行了编码。如果在将来的版本中允许在sparkTable级别进行对中和格式设置,那将是很好的,但是目前这是可行的。
现在我只需要找出字体,我就准备好了。谢谢你的反馈,上面的解决方案并没有直接奏效,但却为我指明了正确的方向。谢谢!
发布于 2016-01-20 13:55:00
也许内联CSS是一种选择:
library(sparkTable)
data(pop,package="sparkTable")
content <- list(
function(x) {
x <- round(mean(x),2)
ifelse(x>1000, sprintf('<span style="color:#ff0000">%s</span>', x), # red numbers
sprintf('<span style="color:#0000ff">%s</span>', x)) # blue numbers
},
newSparkBox(),
newSparkLine(),
newSparkBar(),
function(x) { round(tail(x,1),2) }
)
names(content) <- paste("column",1:length(content),sep="")
varType <- rep("value",length(content))
pop <- pop[,c("variable","value","time")]
pop$time <- as.numeric(as.character(pop$time))
xx <- reshapeExt(pop,idvar="variable", varying=list(2))
x1 <- newSparkTable(xx, content, varType)
showSparkTable(x1)https://stackoverflow.com/questions/34901436
复制相似问题