2013-06-03 32 views
5

在使用knitr時,我在data.table[...]中評估變量時遇到問題。我已經看到解決這個問題的答案,但我仍然收到錯誤。我在R 3.0.0上使用版本爲1.8.8的data.tableESS不能很好地處理data.table和knitr

我使用ESS 13.05附帶的Emacs 24.3。下面是一個示例.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} 

和相應的(PDF)輸出:

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,謝謝你的提示。我添加了一個示例.Rnw文件。我依靠Emacs來調用knitr,所以我不直接調用它,我不知道它是如何被調用的...... – Rodrigo

+1

當我運行'knit(「sample.Rnw」)''時,我沒有任何問題,然後編譯產生'sample.tex'文件。但是,當我使用ESS「快捷鍵」M-n r'來編織文檔時,我得到與您一樣的錯誤。 **這似乎是ESS調用'knit()'的一個問題。**運行後檢查我的R控制檯,'Mn r',我看到它運行'.ess_weave()',所以爲了調試,我在那裏看看。或者可能更好,在[ESS-help](https://stat.ethz.ch/mailman/listinfo/ess-help)上報告,報告R,Emacs和ESS版本信息,以及與之配合使用的直接命令ESS命令不是 –

+1

我不確定。聽起來像是一個環境問題。我很久沒有使用Emacs/ESS了,我記得它在'local()'中調用了Sweave/knitr,這可能是也可能不是原因。 –

回答

1

最有可能的環境問題。這應該可以解決它:

(setq ess-swv-processing-command "%s(%s)") 
相關問題