2012-09-16 17 views
5

Viene visualizzato un errore quando si utilizza la funzione summary() utilizzando Knitr in Lyx. Le funzioni che lo precedono funzionano.Errore con la funzione R utilizzando Knitr in Lyx

<<>>= 
library(faraway) 
head(teengamb) 
mdl <- lm(gamble ~ sex + status, data=teengamb) 
summary(mdl) 
@ 

Sto inserendo questo codice tramite Inserisci codice Tex in Lyx. Ho appena testato che posso eseguire il sommario (teengamb) ma non il sommario (mdl). Entrambi i codici funzionano in RStudio.

L'errore è "non definito controllo di sequenza" with description "\ end {verbatim} ..."

+2

Puoi essere più specifico sull'errore che ottieni? Hai l'errore se lo metti in un documento Lyx da solo? – A5C1D2H2I1M1N2O1R2T1

+1

Non ero specifico, avevo aggiornato il mio post per includere ulteriori dettagli. –

+2

Siamo spiacenti, non sono in grado di replicare il problema; Sto usando Lyx 2.0.4 su Ubuntu. Hai provato a contrassegnare il codice come un chunk Sweave (utilizzando gli stili a discesa) invece di usare 'Inserisci> Codice Tex '? Quale versione di Lyx ecc. E quale sistema operativo stai usando? – A5C1D2H2I1M1N2O1R2T1

risposta

6

Questo problema è stato risolto in knitr dopo la versione 1.1. Non è necessario cambiare nulla in LyX o R. Per il momento, è possibile installare la versione di sviluppo da:

install.packages('knitr', repos = 'http://www.rforge.net/') 

Si prega di ignorare entrambe le risposte qui sotto:


ho finalmente trovato fuori il motivo di questo errore (questo è il bug più profondo che abbia mai visto). È perché il pacchetto upquote non funziona se la codifica T1 viene dichiarata dopo il caricamento, ad es.

\documentclass{article} 
\usepackage{upquote} 
\usepackage[T1]{fontenc} 
\usepackage[latin9]{inputenc} 
\begin{document} 
\begin{verbatim} 
' 
\end{verbatim} 
\end{document} 

Ma se ci spostiamo upquote dopo fontenc, funziona:

\documentclass{article} 
\usepackage[T1]{fontenc} 
\usepackage[latin9]{inputenc} 
\usepackage{upquote} 
\begin{document} 
\begin{verbatim} 
' 
\end{verbatim} 
\end{document} 

O semplicemente non utilizzare la codifica T1 - deselezionare la casella di controllo prima della codifica dei caratteri nelle preferenze:

La ragione per cui gli utenti di Ubuntu non erano in grado di riprodurre il problema era perché upquote.sty era fr Il texmf tree di om R invece di quello in TeXLive, e la versione R di upquote funziona.

L'altro modo per risolvere il problema è aggiungere l'albero texmf di R a MikTeX sotto Windows.

Si prega di ignorare la risposta qui sotto:


Dal options(show.signif.stars = FALSE) lavorato, sto postando come una possibile risposta, ma questo è ancora un problema molto strano per me. Impostazione show.signif.stars = FALSE rimuove i codici importanza sotto i risultati qui sotto (che era da 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 

L'errore è venuto dalla linea Signif. codes, e non capisco il motivo per cui uno di questi caratteri potrebbero eventualmente causare errori di LaTeX: tutto di loro sono ASCII e dovrebbero funzionare all'interno dell'ambiente verbatim.

Dai commenti precedenti, né @mrdwab né io abbiamo potuto riprodurre il problema. Immagino che ci debba essere qualcosa di strano nell'installazione di LaTeX dell'OP.