在Lyx中使用Knitr的R函数出错 [英] Error with R function using Knitr in Lyx

查看:141
本文介绍了在Lyx中使用Knitr的R函数出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆