2

PDFに印刷するためのテーブルを作成するための比較的単純なコードがいくつかあります。

library(gridExtra)
df <- head(iris)
tableGrob(df, gp = gpar(fontsize = 8), rows = NULL)

最後の行をヘッダー行と同じ形式 (太字で暗い灰色の背景) にしたいと思います。gpar を使用してテーブル全体のフォーマットを制御できることは理解していますが、最後の行に影響を与える方法がわかりません。

ありがとう!

4

3 に答える 3

4

ビネットで提案されているように、グロブを編集できます

library(gridExtra)
g <- tableGrob(iris[1:4, 1:3])

edit_cell <- function(table, row, col, name="core-fg", ...){
  l <- table$layout
  ids <- which(l$t %in% row & l$l %in% col & l$name==name)
  for (id in ids){
  newgrob <- editGrob(table$grobs[id][[1]], ...)
  table$grobs[id][[1]] <- newgrob
  }
  table
}

g <- edit_cell(g, nrow(g), seq_len(ncol(g)), "core-fg", 
               gp=gpar(fontsize=15, fontface="bold"))
g <- edit_cell(g, nrow(g), seq_len(ncol(g)), "core-bg", 
               gp=gpar(fill="darkolivegreen1", 
                       col = "darkolivegreen4", lwd=5))

grid.newpage()
grid.draw(g)

ここに画像の説明を入力

于 2015-08-24T21:45:53.670 に答える
3

1 つのオプションは、新しいテーブルを作成し、2 つをマージすることです。

g1 <- tableGrob(iris[1:4, 1:3], rows=NULL)
g2 <- tableGrob(iris[1, 1:3], rows=NULL, # can't have empty content
                cols=as.character(iris[4, 1:3])) # use 4th row as header

grid.newpage()
g <- rbind(g1[-nrow(g1), ], g2[1,])
grid.draw(g)

ここに画像の説明を入力

于 2015-08-24T06:15:17.907 に答える
1

書式設定パラメーターがリサイクルされることを思い出しました (ただし、バージョン >=2.2.0 以降の適切なロジックでのみ)。

library(gridExtra)
library(grid)
t1 <- ttheme_default(core=list(
        fg_params=list(fontface=c(rep("plain", 4), "bold.italic")),
        bg_params = list(fill=c(rep(c("grey95", "grey90"),
                                    length.out=4), "#6BAED6"))
        ))

grid.newpage()
grid.table(iris[1:5, 1:3], theme=t1)

ここに画像の説明を入力

于 2015-08-24T21:44:44.203 に答える