Я экспериментирую с 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}]. См. Справку ( ": =" ). Check is.data.table(DT) имеет значение TRUE.
Отчет генерирует, как ожидалось, с помощью knit2html напрямую, а также через кнопку RStudio "Вязать HTML", поэтому я не уверен, почему он терпит неудачу, когда обработчик 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" ) и нажимаю кнопку, я получаю ошибку...
Любые идеи?