1

Rの gridExtra パッケージを使用してテーブルを作成しようとしていますが、一般的な列名の下にサブ列名を付けたいと考えています。たとえば、「Urbana-Champaign」というタイトルの 1 つの大きな列が、「要素」と「遺伝子の数」という 2 つの小さな列名にまたがっています。gridExtra サポート サイトを隅々まで調べましたが、サブ列を含む全体的な列名を作成する方法が見つからないようです。誰も方法を知っていますか?

4

1 に答える 1

0

基本的な gtable を取得して新しいテキストを追加するのはかなり簡単ですが、セルの書式設定とスタイル設定をすべて追加する必要があります。それは私がいつもあきらめているところです - あまりにも多くのパラメータとオプションを処理する必要があります。

library(gtable)
gtable_add_grobs <- gtable_add_grob #misleading name

d <- head(iris, 3)

extended_matrix <- cbind(c("", rownames(d)), rbind(colnames(d), as.matrix(d))) 

all_grobs <- matrix(lapply(extended_matrix, textGrob), ncol=ncol(d) + 1)

row_heights <- function(m){
  do.call(unit.c, apply(m, 1, function(l)
    max(do.call(unit.c, lapply(l, grobHeight)))))
}

col_widths <- function(m){
  do.call(unit.c, apply(m, 2, function(l)
    max(do.call(unit.c, lapply(l, grobWidth)))))
}

g <- gtable_matrix("table", grobs=all_grobs,
                   widths=col_widths(all_grobs) + unit(4,"mm"), 
                   heights=row_heights(all_grobs) + unit(4,"mm"))

g <- gtable_add_rows(g, unit(1, "line"), 0)
g <- gtable_add_grobs(g, list(textGrob("Sepal's main title"), 
                              textGrob("Petal's main title"))
                     t=1,b=1,l=c(2, 4), r=c(3, 5))

grid.newpage()
grid.draw(g)

ここに画像の説明を入力

于 2013-07-24T00:07:10.483 に答える