gWidgetsWWW を試しているところ、奇妙なエラーが発生しました。data.table 代入演算子 ":=" を使用したレポートを Knit2html するためのハンドラーを含むボタンを作成しました。レポートは次のエラーで返されました。
エラー: := は j でのみ使用するように定義されており、(現在) 1 回のみ使用されます。つまり、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) が TRUE であることを確認します。
レポートは、knit2html を直接使用して、また RStudio の [Knit 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") を呼び出してボタンをクリックすると、エラーが発生します...
何か案は?