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?