2013-06-03 7 views
5

Ho problemi nel valutare le variabili all'interno di data.table[...] quando si utilizza knitr. Ho visto le risposte a questo problema affermando che è stato risolto, ma sto ancora ricevendo degli errori. Sto usando data.table versione 1.8.8 su R 3.0.0.ESS non si comporta bene con data.table e knitr

Sto utilizzando Emacs 24.3 fornito con ESS 13.05. Ecco un file di esempio .Rnw:

\documentclass{article} 

\begin{document} 

<<init,eval=TRUE, cache=FALSE>>= 
require(data.table) 
dt <- data.table(x=1:10, y=11:20) 
dt 
dt[x > 5] 
@ 

\end{document} 

e corrispondenti (pdf) Uscita:

require(data.table) 
## Loading required package: data.table 
## data.table 1.8.8 For help type: help("data.table") 
dt <- data.table(x = 1:10, y = 11:20) 

dt 
## x y 
## 1: 1 11 
## 2: 2 12 
## 3: 3 13 
## 4: 4 14 
## 5: 5 15 
## 6: 6 16 
## 7: 7 17 
## 8: 8 18 
## 9: 9 19 
## 10: 10 20 

dt[x > 5] 
## Error: object ’x’ not found 
+0

Josh, grazie per il suggerimento. Ho aggiunto un file .Rnw di esempio. Mi baso su Emacs per chiamare knitr, quindi non lo chiamo direttamente e non sono sicuro di come viene chiamato ... – Rodrigo

+1

Non ho alcun problema quando eseguo 'knit (" sample.Rnw ")' e poi compilo risultante '' sample.tex "' documento. Tuttavia, quando utilizzo la "scorciatoia" ESS 'M-n r' per lavorare a maglia il documento, ottengo lo stesso errore di te. ** Questo sembra essere un problema con il modo in cui ESS chiama 'knit()'. ** Controllando la mia console R dopo l'esecuzione, 'Mn r', vedo che ha eseguito' .ess_weave() ', quindi per eseguire il debug, I dare un'occhiata lì. O forse meglio, riferire su [ESS-help] (https://stat.ethz.ch/mailman/listinfo/ess-help), riportando le informazioni sulla versione di R, Emacs ed ESS, e i comandi diretti che funzionano a fianco i comandi ESS che non sono –

+1

non sono sicuro. Sembra un problema ambientale. Non uso Emacs/ESS da molto tempo e ricordo che chiama Sweave/knitr in 'local()', che può essere o non essere la ragione. –

risposta

1

Molto probabilmente un problema ambiente. Questo dovrebbe risolverlo:

(setq ess-swv-processing-command "%s(%s)") 
Problemi correlati