gpt4 book ai didi

r - 当tex有方括号([)时如何使用knitr/xtable输出到pdf?

转载 作者:行者123 更新时间:2023-12-02 21:47:39 25 4
gpt4 key购买 nike

我正在尝试使用 knit 和 xtable 将 cut 生成的频率表输出到 PDF 文件。但是,当我包含选项 include.rownames=FALSE 时,不会处理输出并报告错误,而代码与 include.rownames=TRUE 一起使用。测试代码如下:

\documentclass[12pt]{article}

\begin{document}

<<test_table, results = "asis",echo=FALSE>>=
library(xtable)
x <- sample(10,100,replace=TRUE)
breaks <- c(1,2,5,10)
x.freq <- data.frame(table(cut(x, breaks, right=FALSE)))
print(xtable(x.freq),include.rownames=TRUE)
@

\end{document}

当我使用 include.rownames=TRUE 时,我得到下面的输出。

1 [1,2) 5
2 [2,5) 35
3 [5,10) 49

而当我使用 include.rownames=FALSE 时,我收到错误:

Test.tex:71: LaTeX Error: \begin{tabular} on input line 58 ended by \end{document}.

我相信我收到错误是因为文本源中存在方括号“[”。

有人知道如何解决这个问题吗?

最佳答案

问题在于表中每行的末尾都是 \\,它有一个可选参数来指定在下一行之前留出多少空间,例如 \\[1英寸]\\[ 之间允许有空格,因此在本例中,它尝试读取 [2,5)正如该论点。

一个简单的解决方法是更改​​因子的标签以首先包含一些非打印空白字符,但是,如果您这样做,默认情况下,print.xtable 将“清理”它这样它实际上就会打印,所以你需要通过传递一个新的清理函数来关闭它; identity 不会进行任何修复。

levels(x.freq$Var1) <- paste0("{}", levels(x.freq$Var1))
print(xtable(x.freq),include.rownames=FALSE, sanitize.text=identity)

关于r - 当tex有方括号([)时如何使用knitr/xtable输出到pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com