我正在试验 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) 是否为 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") 并单击按钮时,出现错误...
有任何想法吗?