grid.table 和 gridExtra 包中的 tableGrob

grid.table and tableGrob in gridExtra package

我正在尝试使用 gridExtra 包格式化 table。我的 gridExtra 包是 2.0,R 版本是 3.2.1

我在 Whosebug 上浏览了关于格式的答案,建议的选项似乎只适用于旧版本的包。例如,

grid.table(data, h.even.alpha = 1, h.odd.alpha = 0, 
           v.even.alpha = 1, v.odd.alpha = 1, 
           gpar.corefill, gpar.coretext) 

所有这些选项在最新版本中显示为 "unused arguments"。

进一步搜索,我发现在新的 gridExtra 包中,格式可能在主题中定义,示例 -

tt <- ttheme_default(core=list(fg_params=list(hjust=1, x=0.95)), 
                     colhead=list(fg_params=list(col="brown"))

然后做

grid.table(data, theme=tt). 

我找不到的是主题中的这些选项是如何定义的,以及现在如何完成旧版本中可能的所有格式设置。

特别是,我想做 -

  1. 列左对齐
  2. big.marks 的逗号(10000 等于 10,000)
  3. 偶数和奇数行号的不同行颜色
  4. 列header颜色
  5. 不显示行名称(类似 row.names=FALSE)

最近的回答显示了如何改变参数,Baptiste 给出了 link 进一步的例子。正如您在问题中注意到的那样,要更改格式,您可以使用 theme 参数;您可以通过查看 ttheme_default()

的输出来了解要更改的参数
# New theme paramters
myt <- ttheme_default(
         # Use hjust and x to left justify the text
         # Alternate the row fill colours
                 core = list(fg_params=list(hjust = 1, x=1),
                             bg_params=list(fill=c("yellow", "pink"))),

         # Change column header to white text and red background
                 colhead = list(fg_params=list(col="white"),
                                bg_params=list(fill="red"))
 )

# Example data - create some large numbers  
dat <- mtcars[1:5,1:5]
dat$mpg <- dat$mpg*1000

grid.newpage()
grid.draw(tableGrob(format(dat, big.mark=","), theme=myt, rows=NULL))

formatbig.mark参数用于添加逗号分隔符,使用rows=NULL参数删除行名。