R sparkTable格式 - 中心文本

R sparkTable Formatting - Center Text

我正在使用 R 包 "sparkTable" 为 PDF 报告在 markdown 中创建一些 tables。我有 table 和我想要的图表,但我似乎没有看到任何关于格式化 table 内文本的规定。在 kable 和 pander 之类的东西上,您可以格式化文本的位置,只是似乎看不到使用 sparkTable 的方法。也许有一些 LaTeX 方法可以做到这一点。如果有人有任何想法,我将不胜感激。谢谢!

也许内联 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)

好的 - 我想通了。事实证明,sparkTable 使用 R 中的 xtable 包来格式化输出——默认情况下,一旦转换为 LaTeX,table 部分的对齐方式为:

\begin{tabular}{rllll}

这没有通过任何选项。我在包源中找到了 "methods.R" 脚本并添加了选项:

对齐='rccccc'

到两个地方的 xtable 选项(第 1287 和 1314 行):

1287: 打印(xT <- xtable(m, align='rcccc'), sanitize.text.function = function(x){x},comment=infonote)

1314: print(xT <- xtable(m, align='rcccc'), sanitize.text.function = function(x){x})

完成后,我构建了软件包并重新安装了它。我重新 运行 编织到 pdf 降价和瞧!我的数据集中在后面的列中。

我知道这更像是一个自定义解决方案,但我只将它用于一定数量的数据,它可以满足我的需要。由于 sparkTable 在其自己的代码中使用 xtable,因此我无法传递这些选项(据我所知),因此我将其编码在源代码中。如果在未来的版本中,在 sparkTable 级别允许居中和格式化,那就太好了,但现在这是可行的。

现在我只需要找出字体就可以了。感谢您的反馈,上面的解决方案并没有直接起作用,但为我指明了正确的方向。谢谢!