我有一个数学方程式,想包含在R-markdown输出表的单元格中:
'$\\sum_{l=1}^g -g\\$'
表代码在这里:
tb1 = data.frame(c("Treatment","Residual","Total"),
c(1,2,3),
c(4,5,6))
该公式应替换第二行最后一列中的值“ 3”。
如何实现?
答案 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)