在Lyx中使用Knitr的R函数出错 [英] Error with R function using Knitr in Lyx
问题描述
在使用summary()函数时出现错误 Lyx针织衫.它前面的功能起作用.
I am getting an error when using the summary() function using Knitr in Lyx. The functions preceding it works.
<<>>=
library(faraway)
head(teengamb)
mdl <- lm(gamble ~ sex + status, data=teengamb)
summary(mdl)
@
我正在通过Lyx中的插入Tex代码输入此代码.我刚刚测试了我可以运行summary(teengamb),但不能运行summary(mdl).两种代码都可以在RStudio中使用.
I am inputing this code through Insert Tex Code in Lyx. I just tested I can run summary(teengamb) but not summary(mdl). Both codes work in RStudio.
错误是"Undefined Control Sequence",描述为"\ end {verbatim} ..."
The error is "Undefined Control Sequence" with description "\end{verbatim} ..."
推荐答案
此问题已在 knitr
中解决. 在1.1版之后.您无需在LyX或R中进行任何更改.从CRAN安装 knitr :
This problem has been solved in knitr
after version 1.1. You do not need to change anything in LyX or R. Install knitr from CRAN:
install.packages('knitr')
请忽略以下两个答案:
我终于找到了此错误的原因(这是我见过的最深的错误).这是因为upquote
包在加载T1
编码后声明为无效,例如
I have finally found out the reason for this error (this is the deepest bug I have ever seen). It is because the upquote
package does not work if the T1
encoding is declared after it is loaded, e.g.
\documentclass{article}
\usepackage{upquote}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\begin{document}
\begin{verbatim}
'
\end{verbatim}
\end{document}
但是如果我们将upquote
移到fontenc
之后,它将起作用:
But if we move upquote
after fontenc
, it works:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{upquote}
\begin{document}
\begin{verbatim}
'
\end{verbatim}
\end{document}
或者只是不使用T1编码-在首选项中的字体编码之前取消选中该复选框:
Or just do not use the T1 encoding -- uncheck the checkbox before the font encoding in the preferences:
Ubuntu用户无法重现该问题的原因是因为upquote.sty
来自R的texmf树,而不是TeXLive中的树,并且R的upquote
版本有效.
The reason that Ubuntu users were not able to reproduce the problem was because upquote.sty
was from R's texmf tree instead of the one in TeXLive, and R's version of upquote
works.
解决此问题的另一种方法是在Windows下将R的texmf树添加到MikTeX.
The other way to fix the problem is to add R's texmf tree to MikTeX under Windows.
请忽略以下答案:
自options(show.signif.stars = FALSE)
工作以来,我将其发布为一个可能的答案,但这对我来说仍然是一个非常奇怪的问题.设置show.signif.stars = FALSE
会从下面的结果(来自summary(mdl)
)中删除重要性代码:
Since options(show.signif.stars = FALSE)
worked, I'm posting it as one possible answer, but this is still a very weird problem to me. Setting show.signif.stars = FALSE
removes the significance codes from the results below (which was from summary(mdl)
):
Call:
lm(formula = gamble ~ sex + status, data = teengamb)
Residuals:
Min 1Q Median 3Q Max
-35.873 -15.755 -3.007 10.924 111.586
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 60.2233 15.1347 3.979 0.000255 ***
sex -35.7094 9.4899 -3.763 0.000493 ***
status -0.5855 0.2727 -2.147 0.037321 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 27.99 on 44 degrees of freedom
Multiple R-squared: 0.2454, Adjusted R-squared: 0.2111
F-statistic: 7.154 on 2 and 44 DF, p-value: 0.002042
错误来自行Signif. codes
,我不明白为什么这些字符中的任何一个都可能导致LaTeX中的错误:所有字符都是ASCII,应该在verbatim
环境中工作.
The error came from the line Signif. codes
, and I do not understand why any of these characters could possibly cause errors in LaTeX: all of them are ASCII and should work inside the verbatim
environment.
根据以上评论,@ mrdwab和我都无法重现该问题.我猜想OP的LaTeX安装一定有些奇怪.
From the comments above, neither @mrdwab nor me could reproduce the problem. I guess there must be something weird about the OP's LaTeX installation.
这篇关于在Lyx中使用Knitr的R函数出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!