gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:48:54 25 4
gpt4 key购买 nike

我正在尝试使用 knitr 和 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}.

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

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

最佳答案

问题是表中每一行的末尾是一个\\,它有一个可选参数来指定在下一行之前留出多少空间,例如,\\[1in]\\[ 之间允许有空格,所以在这种情况下,它试图读取 [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