błąd data.table, gdy używany przez knitr, gWidgetsWWW

Eksperymentuję z gWidgetsWWW i napotkałem dziwny błąd. Stworzyłem przycisk z programem obsługi do knit2html raportu, który używał operatora przypisania data.table „: =”. Raport powrócił z tym błędem:

Błąd:: = jest zdefiniowany do użycia tylko w j, a (obecnie) tylko raz; tj. DT [i, col: = 1L] i DT [, newcol: = sum (colB), przez = colA] są w porządku, ale nie DT [i, col]: = 1L, nie DT [i] $ col: = 1L, a nie DT [, {newcol1: = 1L; newcol2: = 2L}]. Zobacz pomoc („: =”). Check is.data.table (DT) ma wartość TRUE.

Raport generuje zgodnie z oczekiwaniami przy użyciu knit2html bezpośrednio, a także za pomocą przycisku „Knit HTML” w RStudio, więc nie jestem pewien, dlaczego zawodzi, gdy program obsługi wywołuje knit2html.

Oto okno 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

Oto przykład R Markdown Doc, który powoduje błąd:

Test Report
===========

```{r test_chunk}
library(data.table)

df<-data.frame(State=rownames(USArrests),USArrests)

data.table(df)[,State:=tolower(State)]

```

Nie wiem dlaczego, ale kiedy wywołam localServerOpen („test_gui.R”) i klikam przycisk, pojawia się błąd ...

Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion