Ошибка data.table при использовании через knitr, gWidgetsWWW
Я экспериментировал с gWidgetsWWW и обнаружил странную ошибку. Я создал кнопку с обработчиком для knit2html отчета, в котором использовался оператор присваивания data.table ": =". Отчет вернулся с этой ошибкой:
Ошибка:: = определена для использования только в j и (в настоящее время) только один раз; то есть DT [i, col: = 1L] и DT [, newcol: = sum (colB), by = colA] в порядке, но не DT [i, col]: = 1L, а не DT [i] $ col: = 1L, а не DT [, {newcol1: = 1L; newcol2: = 2L}]. Пожалуйста, смотрите помощь (": ="). Проверьте, is.data.table (DT) ИСТИНА.
Отчет генерируется, как и ожидалось, с использованием knit2html напрямую, а также с помощью кнопки «Knit HTML» в RStudio, поэтому я не уверен, почему он не работает, когда обработчик вызывает knit2html.
Вот окно gWidgetsWWW "test_gui.R":
library(gWidgetsWWW)
library(knitr)
w<-gwindow("Test Window")
g<-ggroup(horizontal=F,cont=w)
b<-gbutton("Report Button",cont=g,handler=function(h,...){
knit2html("test_report.Rmd")
localServerOpen("test_report.html")
})
visible(w)<-T
Вот пример R Markdown Doc, который выдает ошибку:
Test Report
===========
```{r test_chunk}
library(data.table)
df<-data.frame(State=rownames(USArrests),USArrests)
data.table(df)[,State:=tolower(State)]
```
Не знаю почему, но когда я вызываю localServerOpen ("test_gui.R") и нажимаю кнопку, я получаю сообщение об ошибке ...
Есть идеи?