![如何循环遍历 R 对象中的块](https://linux22.com/image/281456/%E5%A6%82%E4%BD%95%E5%BE%AA%E7%8E%AF%E9%81%8D%E5%8E%86%20R%20%E5%AF%B9%E8%B1%A1%E4%B8%AD%E7%9A%84%E5%9D%97.png)
我想使用 TeX 排版一份基于 R 对象(数据框)数据的报告。想法是从 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}
产生
如何使用 TeX 排版 R 循环输出的值?换句话说,如何使用\loop...\repeat
TeX 处理 R 循环变量。
答案1
您可以使用表包裹:
<<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)
}
@
关键是块选项results='asis'
。