R-将grid.table中的列指定为粗体

时间:2018-11-21 10:31:03

标签: r gridextra r-grid

我有一个包含3列的表格,并且正在使用grid.table生成pdf版本。我希望其中两列以粗体显示,而另一列保留为纯文本。我还没有找到一个通用的解决方案,grid.table cran页面仅向您显示如何编辑行或特定单元格的字体。

使用一个小的样本数据集(由于敏感):

> dput(Data)
structure(list(Location = structure(c(1L, 1L, 1L, 2L, 2L, 3L), .Label = c("A", "B", "C"), class = "factor"), 
Subloc = structure(1:6, .Label = c("A1","A2", "A3", "B1", "B2", "C1"), 
class = "factor"), Type = structure(c(3L,3L, 3L, 1L, 1L, 2L), 
.Label = c("Alpha", "Beta", "Meta"), 
class = "factor")), 
class = "data.frame", 
row.names = c(NA, -6L))

我现有的代码:

    maxrow <- c(30);
    npages <- ceiling(nrow(Data)/maxrow);
    pdf(paste0("DATE.pdf"), height = 11, width = 10)
    idx <- seq(1, maxrow)
    grid.table(Data[idx, ], rows = NULL, theme = ttheme_minimal(core=list(fg_params=list(hjust=0, x=0.1, fontface = c("bold"))),
                                                           rowhead=list(fg_params=list(hjust=0, x=0)), colhead=list(fg_params=list(fontsize = 14, col="#660066", fontface="bold"))))
    for (i in 2:npages){
     grid.newpage();
    if(i*maxrow <= nrow(Data)) {
    idx <- seq(1+((i-1)*maxrow), i*maxrow)}  else{
       idx <- seq(1+((i-1)*maxrow), nrow(Data))}grid.table(Data[idx,], rows =NULL,theme = ttheme_minimal(core=list(fg_params=list(hjust=0, x=0.1)), rowhead=list(fg_params=list(hjust=0, x=0)),colhead=list(fg_params=list(fontsize = 14, col="#660066", fontface="bold"))))
}dev.off()

我想使Location和Type列(而不是列标题)中的数据以粗体显示。我已经设法使所有列的内容在fg_params = list包装器中变为粗体,但不知道如何指定我要进行此处理的列。

1 个答案:

答案 0 :(得分:2)

尝试

library(gridExtra)

tt <- ttheme_default()
tt$core$fg_params <- list(fontface=matrix(c(1,2,3), ncol=ncol(d),nrow=nrow(d),byrow=TRUE))

grid.table(d, theme=tt)

代码输出:

enter image description here