5

print.xtable add.to.rowはこのようにフォーマットされたテーブルを取得するために使用しようとします:

スポーツ

share of ballers    22.3 
share of skiers      4.6

依存症

share of smokers    20.3 
share of drinkers    6.6

これらの行に値が含まれていない場合でも、私のRテーブルには追加のrow.namesが含まれています。add.to.rowオプションを使用して、ここで提案されているように、正常に機能するさまざまな行に色を追加しました。ただし、機能しないのは、xtableを使用して太字のテキストを追加するかhline、行の間に追加することです。私はいつも次のようなエラーメッセージを受け取ります:

Bad type area settings!検出された線幅は、ヒューリスティックに決定された線幅よりも約52%(typearea)大きくなっています。

したがって、これは、私の変更のためにテーブルがその環境に対して大きくなることを意味する可能性がありますが、それについて何をすべきかわかりません。xtable出力自体を変更するこのような投稿を読んだことがありますが、これは可能かもしれませんが、より簡単な解決策を探しています。このソリューションを選択する場合は、capture.output正規表現の置換を使用して間に何かを追加する必要があったためです。

これを回避する方法はありますか?または、より簡単な解決策はありますか?

4

1 に答える 1

12

hlineパーツについては、を参照してください?print.xtable

hline.after:' type="latex"'の場合、-1から' "nrow(x)"'までの数値のベクトルで、その後に水平線が表示される行を示します。

すべての行名を太字にするには:

bold.allrows <- function(x) {
  h <- paste('\\textbf{',x,'}', sep ='')
  h
}
print(xtable(yourTable), 
      sanitize.rownames.function =  bold.allrows)

一部の行名を太字にするために、それらの行に「特別なマークアップ」を追加できます。例BOLD

bold.somerows <- 
        function(x) gsub('BOLD(.*)',paste('\\\\textbf{\\1','}'),x)

print(xtable(yourTable), 
      sanitize.rownames.function =  bold.somerows)

例えば:

require(xtable)
hh <- head(mtcars)[ , c(1:5)]
## I want to bold 1 and 3 rows 
rownames(hh)[c(1, 3)] <- paste('BOLD', rownames(hh)[c(1, 3)])
print(xtable(hh), sanitize.rownames.function =  bold.somerows)
于 2012-12-07T12:08:45.050 に答える