3

ドキュメントで、rmarkdown標準誤差を含む回帰係数の Latex テーブルを作成して、1 つのテーブルで複数の回帰モデルを比較しています。係数の小数点が列の垂直方向に並ぶように、各モデルの係数を垂直方向に揃えたいと思います。

を使っtexregてテーブルを作成しています。係数はデフォルトでは 10 進数で揃えられません (代わりに、各文字列はその列の中央に配置されます)。係数を 10 進数で揃える方法を探しています。私は結婚していないので、 、、またはその他の方法texregを使用した解決策があれば、それにも興味があります。理想的には、ドキュメントをファイルにレンダリングした後にマークアップを微調整するのではなく、ドキュメント内でプログラムによって実装できるソリューションが必要です。xtablepanderstargazerrmarkdownlatex.tex

おまけとして、表の見出しに改行を入れられるようにしたいです。たとえばtexreg、引数を使用してcustom.model.names、各回帰モデルの列名を設定できます。"Add Horsepower and AM"以下の例では、列をそれほど広くする必要がないように、2 行に分割したいと考えています。試してみ"Add Horsepower \newline and AM"ましたが、最後の列ヘッダーに「ewline」を追加するだけで、「\n」は無視されます。

再現可能な例を次に示します。

---
title: "Regression Table"
author: "eipi10"
date: "August 15, 2016"
header-includes:
    - \usepackage{dcolumn}
output: pdf_document
---

```{r, echo=FALSE, message=FALSE, results="asis"}
library(texreg)

m1 = glm(mpg ~ wt + factor(cyl), data=mtcars)
m2 = glm(mpg ~ wt + factor(cyl) + hp + factor(am), data=mtcars)

texreg(list(m1,m2),
       single.row=TRUE, 
       custom.model.names=c("Base Model", "Add Horsepower and AM"),
       custom.coef.names=c("Intercept", "Weight","Cyl: 6", "Cyl: 8", "Horsepower","AM: 1"))
```

出力テーブルは次のようになります。

ここに画像の説明を入力

4

2 に答える 2

1

を使った試みbroomです。ただし、ラベルをクリーンアップする必要があります。

library(broom)
library(dplyr)
library(pander)
library(tidyr)

m1 = glm(mpg ~ wt + factor(cyl), data=mtcars)
m2 = glm(mpg ~ wt + factor(cyl) + hp + factor(am), data=mtcars)
base <- tidy(m1) %>% select(term, estimate) %>% mutate(type = "base_model")
with_am_hp <- tidy(m2) %>% select(term, estimate) %>% mutate(type = "Add_Horsepower_and_AM")
models <- bind_rows(base, with_am_hp)
formatted_models <- models  %>% spread(type, estimate)

m1_glance <- glance(m1) %>% mutate(type = "base_model")
m2_glance <- glance(m2) %>% mutate(type = "Add_Horsepower_and_AM")
glance_table <- data.frame("Add_Horsepower_and_AM" = unlist(glance(m2)), "base_model" = unlist(glance(m1))) %>% mutate(term = row.names(.))

full_results <- bind_rows(formatted_models, glance_table)
pandoc.table(full_results, justify = "left")
于 2016-08-16T00:12:53.900 に答える