在R

时间:2018-12-08 16:35:14

标签: r latex r-markdown equation

我有一个数学方程式,想包含在R-markdown输出表的单元格中:

'$\\sum_{l=1}^g -g\\$'

表代码在这里:

tb1 = data.frame(c("Treatment","Residual","Total"),
               c(1,2,3),
               c(4,5,6))

该公式应替换第二行最后一列中的值“ 3”。

如何实现?

2 个答案:

答案 0 :(得分:1)

将示例数据重新定义为:

tb1 = data.frame(Treatment=c(1,4), Residual=c(2,5), Total=c(3,6))

在您指定的数据框中添加乳胶方程式,并引用反斜杠:

tb1 = data.frame(Treatment=c(1,4), Residual=c(2,5), 
Total=c("$\\sum_{l=1}^g -g$",6))

然后使用print.xtable生成正确的乳胶标记。 rmarkdown代码块可能如下所示:

```{r echo=F, results='asis'}
library(xtable)

print(xtable(tb1), sanitize.text.function = function(x) {x})
\begin{table}[ht]
\centering
\begin{tabular}{rrrl}
\hline
& Treatment & Residual & Total \\ 
\hline
1 & 1.00 & 2.00 & $\sum_{l=1}^g -g$ \\ 
2 & 4.00 & 5.00 & 6 \\ 
\hline
\end{tabular}
\end{table}
```

答案 1 :(得分:0)

knitr::kable提供了将方程式与escape = FALSE参数结合起来直接输入到单元格中的功能(请参见here)。这样可以避免您在文档生成中提供转义符(但仍然需要为R提供转义符和总和)。

针对您的情况(在代码块中)

tb1 = data.frame(c("Treatment","Residual","Total"),
           c(1,2,"$\\sum_{l=1}^g-g$"),
           c(4,5,6))
knitr::kable(tb1, escape = FALSE)