有没有人注意到tableGrob很慢?

时间:2013-08-29 14:49:09

标签: r gridextra

我正在绘制数据库性能数据,主要是使用ggplot2。共有8页相对复杂的图表和2页tableGrobs。我只是检测了我的代码,以确定我花费时间和总共25秒的时间,这些秒中的13个在最后2页是tableGrobs。这25秒包括加载数据,用stringR进行严格的解析等。这是示例输出: https://www.dropbox.com/s/3s6bi70py5pgpdm/PSPROD-259-341-1-plot.pdf,虽然这些时间的最后一页有75行和17列。

那么,这是其他人看到的吗?是否有替代tableGrob可能更快?

我用来生成SQL表的代码是:

sqlSummaryText1 <- tableGrob(head(subset(main$DF_SQL_SUMMARY, 
                                         select=-c(PX_EXEC,LOG_READS)),75),
                             show.rownames = FALSE, 
                             gpar.coretext = gpar(fontsize=5),
                             gpar.coltext = gpar(fontsize=5),
                             padding.v = unit(1, "mm"),
                             padding.h = unit(1, "mm"),
                             show.colnames = TRUE,
                             col.just = "left", 
                             gpar.corefill = gpar(fill=NA,col=NA),
                             h.even.alpha = 0 )
grid.arrange(sqlSummaryText1,ncol = 1, widths=c(1))

1 个答案:

答案 0 :(得分:4)

很难想象比grid.table更慢的东西,几乎任何替代方案都会快得多。您可以在基本图形中使用textplot或addtable2plot,或者使用各种选项在Sweave / knitr等处理的pdf文档中生成表格。

grid.table缓慢的主要原因是因为每个单元格都包含一个textGrob;为所有标签设置一个textGrob(参见this document的示例2),它会更快,但功能更少,实施起来更麻烦。基本实现是shown here