8

私はknitrが初めて(そしてRもまったく初めて)なので、これはばかげた質問かもしれません...

2 つの data.frames があり、どちらにも 2 つの列がありますが、行数が異なります。ニットのレポートでそれらを表示したいのですが、隣同士に簡単に座ることができるときに、狭いテーブルを別の狭いテーブルの下に置くのは見栄えがよくありません。それらを並べて表示する方法はありますか?

アップデート

わかりました、以下の提案に基づいて、これが私がしたことです(私は今3つのテーブルをまとめています):

```{r fig.height=13.5, fig.width=10, echo=FALSE, comment=""}
grid.arrange(textGrob("Visual Clusters", gp=gpar(fontsize=14, fontface="bold")),
             textGrob("We have biofilm data for...", gp=gpar(fontsize=14, fontface="bold")),
             textGrob("Left Over Isolates", gp=gpar(fontsize=14, fontface="bold")),
             tableGrob(clusters, show.rownames=FALSE, gp=gpar(fontsize=10)),
             tableGrob(clust_ab, show.rownames=FALSE, gp=gpar(fontsize=10)),
             tableGrob(n_clust, show.rownames=FALSE, gp=gpar(fontsize=10)),
             ncol=3, nrow=2, heights=c(1,30))
```

これは、3 つのテーブルのタイトルがあり、番号付きの行がないため、すでに非常に見栄えがします。
これまでに解決できなかった唯一の問題は、テーブルがすべて水平方向に中央に配置されていることです。そのため、短いテーブルは長いテーブルの下から始まります。

4

2 に答える 2

14

Knitr の開発バージョン ( Githubにあります。インストール手順に従ってください) にはkable()、テーブルを文字ベクトルとして返すことができる関数があります。2 つのテーブルを収集して、親テーブルの 2 つのセルに配置できます。簡単な例を次に示します。

```{r two-tables, results='asis'}
library(knitr)
t1 = kable(mtcars, format='html', output = FALSE)
t2 = kable(iris, format='html', output = FALSE)
cat(c('<table><tr valign="top"><td>', t1, '</td><td>', t2, '</td><tr></table>'),
    sep = '')
```

style="float: [left|right]"テーブルを左/右にフロートさせるなどの CSS トリックを使用することもできます。

セルのパディングとスペースを設定したい場合は、通常どおりテーブル属性cellpadding/を使用できます。cellspacing

```{r two-tables, results='asis'}
library(knitr)
t1 = kable(mtcars, format='html', table.attr='cellpadding="3"', output = FALSE)
t2 = kable(iris, format='html', table.attr='cellpadding="3"', output = FALSE)
cat(c('<table><tr valign="top"><td>', t1, '</td>', '<td>', t2, '</td></tr></table>'),
    sep = '')
```

上記のコードの動作については、 RPubs の投稿を参照してください。

于 2013-07-19T06:53:15.747 に答える
5

data.frames の「イメージ」で解決しますか? 明らかに私の解決策は大雑把です。詳細を自由にいじってください(たとえば、data.frames 間の間隔)。

Two data.frames, side by side
========================================================

```{r}
library(gridExtra)
x <- data.frame(a = runif(5), b = runif(5))
y <- data.frame(a = runif(7), b = runif(7))

grid.arrange(tableGrob(x), tableGrob(y), ncol = 2)
```

ここに画像の説明を入力

于 2013-07-18T08:48:30.780 に答える