当tex有方括号([)时,如何使用knitr/xtable输出为pdf?
我试图使用knitr和xtable将当tex有方括号([)时,如何使用knitr/xtable输出为pdf?,r,pdf,knitr,xtable,R,Pdf,Knitr,Xtable,我试图使用knitr和xtable将cut生成的频率表输出到PDF文件中。但是,当我包含选项include.rownames=FALSE时,不会处理输出并报告错误,而代码使用include.rownames=TRUE。测试代码如下: \documentclass[12pt]{article} \begin{document} <<test_table, results = "asis",echo=FALSE>>= library(xtable) x <- sam
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}
\documentclass[12pt]{article}
\开始{document}
=
图书馆(xtable)
x问题在于,表中每一行的末尾都是一个\\
,它有一个可选参数来指定在下一行之前要留出多少空间,例如,\[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)
levels(x.freq$Var1)一个简单的手动解决方法是为您的cut
函数提供标签。一个输入错误-我想您的意思是include.rownames=FALSE
,对吧?解决方案工作得非常完美。