So führen Sie eine Schleife über R-Objekte AUS Chunks durch

So führen Sie eine Schleife über R-Objekte AUS Chunks durch

Ich möchte mit TeX einen Bericht basierend auf Daten aus einem R-Objekt (Datenrahmen) setzen. Die Idee besteht darin, aus jeder Zeile eines R-Datenrahmens eine schöne TeX-Tabelle auszudrucken.

Etwas wie

\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}

Bitte beachten Sie die folgenden 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}

das erzeugt

Bildbeschreibung hier eingeben

Wie kann ich die von der R-Schleife ausgegebenen Werte mit TeX setzen? Mit anderen Worten, wie kann ich \loop...\repeatmit TeX über R-Schleifenvariablen arbeiten?

Antwort1

Du kannst den ... benutzenxtablePaket:

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

Oder nutzen Sie die kable()Funktion inStricken:

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

kable() in knitr

Der Schlüssel ist die Chunk-Option results='asis'.

verwandte Informationen