チャンク外の R オブジェクトをループする方法

チャンク外の R オブジェクトをループする方法

R オブジェクト (データフレーム) のデータに基づいて、TeX でレポートをタイプセットしたいと考えています。R データフレームの各行から、わかりやすい TeX テーブルを印刷することが目的です。

何かのようなもの

\begin{tabular}{ l c r }
   A1 & B1 & C1  \\
\end{tabular}

\begin{tabular}{ l c r }
   A2 & B2 & C2  \\
\end{tabular}

\begin{tabular}{ l c r }
   A3 & B3 & C3  \\
\end{tabular}

以下のMWEを検討してください

\documentclass{article}

\begin{document}

<<prepare data>>=
one   <- c("A1","B1","C1")
two   <- c("A2","B2","C2")
three <- c("A3","B3","C3")
df <- data.frame(one,two,three)
@

<<loop data>>=
for (i in 1:nrow(df)) {
  print(df[i])
}
@

\end{document}

生成する

ここに画像の説明を入力してください

R ループによって出力された値を TeX でタイプセットするにはどうすればよいでしょうか。言い換えると、\loop...\repeatR ループ変数に対して TeX を使用する方法です。

答え1

あなたはxテーブルパッケージ:

<<loop-data, results='asis'>>=
library(xtable)
for (i in 1:nrow(df)) {
  print(xtable(t(df[i])))
}
@

またはkable()ニット:

<<loop-data, results='asis'>>=
for (i in 1:nrow(df)) {
  kable(t(df[i]), row.names=FALSE)
}
@

knitr の kable()

鍵となるのはチャンクオプションですresults='asis'

関連情報