0

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

4

2 回答 2

1

也许内联 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)
于 2016-01-20T13:55:00.530 回答
0

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

\开始{表格}{rllll}

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

对齐 = 'rccccc'

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

第1287章

第1314章

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

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

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

于 2016-01-29T17:48:09.753 回答