メモ:rmarkdown
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
メモ:rmarkdown [2020/05/05 17:14] – [半角スペース] admin | メモ:rmarkdown [2020/05/12 12:10] – [テーブルなどのラベルを改行する] admin | ||
---|---|---|---|
行 30: | 行 30: | ||
- \setpagelayout * {margin=20mm} | - \setpagelayout * {margin=20mm} | ||
- \renewcommand{\baselinestretch}{0.9} | - \renewcommand{\baselinestretch}{0.9} | ||
+ | - | ||
- \usepackage[compact]{titlesec} | - \usepackage[compact]{titlesec} | ||
- | - \titlespacing*{\section}{0pt}{*0}{0pt} | + | - \titlespacing{\section}{0pt}{5pt}{3pt} |
- | - \titlespacing*{\subsection}{0pt}{*0}{0pt} | + | - \titlespacing{\subsection}{0pt}{5pt}{3pt} |
+ | - | ||
- \renewcommand{\labelitemi}{■} | - \renewcommand{\labelitemi}{■} | ||
- \renewcommand{\labelitemii}{$\circ$} | - \renewcommand{\labelitemii}{$\circ$} | ||
行 49: | 行 51: | ||
- \setlength{\@fpsep}{8pt} | - \setlength{\@fpsep}{8pt} | ||
- \setlength{\@fpbot}{0pt plus 1fil} | - \setlength{\@fpbot}{0pt plus 1fil} | ||
+ | - \makeatother | ||
+ | | ||
+ | - \makeatletter | ||
+ | - \renewcommand{\theequation}{% 式番号の付け方 | ||
+ | - \thesection-\arabic{equation}} | ||
+ | - \@addtoreset{equation}{section} | ||
+ | - \renewcommand{\thefigure}{% 図番号の付け方 | ||
+ | - \thesection-\arabic{figure}} | ||
+ | - \@addtoreset{figure}{section} | ||
+ | - \renewcommand{\thetable}{% 表番号の付け方 | ||
+ | - \thesection-\arabic{table}} | ||
+ | - \@addtoreset{table}{section} | ||
- \makeatother | - \makeatother | ||
| | ||
行 91: | 行 105: | ||
| | ||
``` | ``` | ||
+ | |||
+ | |||
+ | ===== パラグラフ間の余白(パラグラフ送り) ===== | ||
+ | |||
+ | パラグラフ間の字送り(余白)の設定。標準では1行空きになっているようだ。全体の設定を変更するにはヘッダ部分に以下を記述。 | ||
+ | |||
+ | | ||
+ | - \setlength{\parskip}{1.5em} | ||
+ | |||
+ | |||
===== Loopでチャンク作成 ===== | ===== Loopでチャンク作成 ===== | ||
図表を連続して作成する場合など、チャンク内のLoopから別のチャンクを生成したい場合がある。 | 図表を連続して作成する場合など、チャンク内のLoopから別のチャンクを生成したい場合がある。 | ||
- | まずテンプレートとなるチャンクを作成する。ループで回すように、必要な個所は変数化し該当箇所を「{{変数名}}」にしておく。以下の例では、チャンク名とキャプション、ggplotのy軸に使う変数名を外部から与えるパラメータにした。 | + | まずテンプレートとなるチャンクを作成する。ループで回すように、必要な個所は変数化し該当箇所を「%%{{%%変数名%%}}%%」にしておく。以下の例では、チャンク名とキャプション、ggplotのy軸に使う変数名を外部から与えるパラメータにした。 |
```{r チャンク名_{{prm_chankname}}, | ```{r チャンク名_{{prm_chankname}}, | ||
ggplot(data=DAT, | ggplot(data=DAT, | ||
geom_line() ... | geom_line() ... | ||
+ | | ||
``` | ``` | ||
行 153: | 行 177: | ||
linesep="" | linesep="" | ||
+ | |||
+ | ===== テーブルなどのラベルを改行する ===== | ||
+ | |||
+ | Latexに変換するときに改行を保持するための関数を使わないと、R側の改行が無視される。 | ||
+ | |||
+ | col.names = linebreak(c(" | ||
+ | |||
+ | このように、改行「\n」が入った文字列やベクトルをlinebreakに渡してやるとよい。 | ||
+ | |||
+ | ===== 回帰分析の結果出力 ===== | ||
+ | |||
+ | 回帰分析の結果の出力は、texregパッケージを使うと手間なく美しくできる。類似パッケージもあるが、とりあえずこのパッケージを使っている。 | ||
+ | |||
+ | ここでは主にPDFに出力するために使っているので、要するにLatexのコードを出力するために利用している。 | ||
+ | |||
+ | 単純に回帰分析の結果を出力するだけなら以下。 | ||
+ | # lm()の結果がres.lmに代入されているとして | ||
+ | texreg( | ||
+ | list(res.lm), | ||
+ | digits = 3, | ||
+ | caption = " | ||
+ | float.pos = " | ||
+ | ) | ||
+ | |||
+ | 関数の第一引数に回帰分析の結果が入ったオブジェクトをリストで渡してやればよい。複数の結果を与えると、自動的に横に並べて表示してくれる。2つのモデルの結果で同じ変数があれば、同じ行に示してくれる。モデル内の変数が異なる行は、存在しない場合は空白になって表示される。その他によく使うのは、小数点以下の桁数、キャプション、Latex側でfloatで表を挿入する際のオプション指定など。これ以外にも、モデル名を設定(custom.model.names)や変数名を設定(custom.coef.names)、変数の順序(reorder.coef)、表示しない変数(omit.coef:正規表現で除外変数を指定)など細かく指定できる。 | ||
+ | |||
+ | なお、開発中は「texreg」の部分を「screenreg」にしておくと、インラインで見やすいように出力してくれる。 | ||
+ | |||
+ | ロジスティック回帰を行ったときなど、結果の係数を指数変換してオッズ比にしたい場合などがある。その場合は、次のように係数をいったん取り出して、オーバーライドしてやればよい。 | ||
+ | |||
+ | # res.glmにglm()の結果が代入されているとして | ||
+ | | ||
+ | # texregパッケージのextract関数で各種係数を取り出す | ||
+ | # ロードしていてもパッケージ名を指定しないと同名の関数が被ることがよくある | ||
+ | res.glm.ext <- texreg:: | ||
+ | | ||
+ | texreg( | ||
+ | list(res.glm), | ||
+ | # 上のリストで与えたモデルと同じ順で上書きする係数の入ったオブジェクトをリストで渡す | ||
+ | # ここでは先にextractで取り出した係数を指数変換してオッズ比にしている | ||
+ | override.coef = list(exp(res.glm.ext@coef)), | ||
+ | override.se = list(exp(res.glm.ext@se)), | ||
+ | digits = 3, | ||
+ | caption = " | ||
+ | float.pos = " | ||
+ | ) | ||
メモ/rmarkdown.txt · 最終更新: 2023/06/22 11:00 by Wiki Editor