2013-06-03 6 views
5

Ich habe Probleme bei der Auswertung von Variablen innerhalb data.table[...] bei Verwendung knitr. Ich habe Antworten auf dieses Problem gesehen und festgestellt, dass es gelöst ist, aber ich bekomme immer noch Fehler. Ich benutze data.table Version 1.8.8 auf R 3.0.0.ESS behandelt nicht gut mit data.table und knitr

Ich benutze Emacs 24.3, die mit ESS 13.05 kommt. Hier ist ein Beispiel .Rnw Datei:

\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} 

und entsprechende (pdf) Ausgabe:

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, danke für den Tipp. Ich habe eine Beispiel-RNW-Datei hinzugefügt. Ich verlasse mich auf Emacs, um Knitr zu rufen, also nenne ich es nicht direkt und ich bin mir nicht sicher, wie es heißt ... – Rodrigo

+1

Ich habe kein Problem, wenn ich 'stricken (" sample.Rnw ")' und dann kompiliere resultierendes '" sample.tex "' Dokument. Wenn ich jedoch das ESS "Shortcut" 'M-nr' verwende, um das Dokument zu stricken, bekomme ich den gleichen Fehler wie Sie. ** Dies scheint ein Problem mit der Art zu sein, wie ESS 'strick()' nennt. ** Nachdem ich meine R-Konsole überprüft habe, 'Mn r', sehe ich, dass es' .ess_weave() 'ausgeführt hat, um zu debuggen, I schau mal dort hin. Oder vielleicht besser, berichten Sie auf [ESS-help] (https://stat.ethz.ch/mailman/listinfo/ess-help), berichten Sie R, Emacs und ESS-Versionsinformationen und die direkten Befehle, die mit Ihnen zusammenarbeiten die ESS-Befehle, die nicht –

+1

Ich bin mir nicht sicher. Klingt nach einem Umgebungsproblem. Ich habe Emacs/ESS lange Zeit nicht benutzt, und ich erinnere mich daran, dass Sweave/knitr in 'local()' aufgerufen wurde, was vielleicht der Grund dafür ist. –

Antwort

1

höchstwahrscheinlich ein Thema Umwelt. Dies sollte es lösen:

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