如何通过 "V8" 包在 R 语言中使用 Javascript 库?

How can I use Javascript library in R language via "V8" packages?

我想在 R 语言中使用 RiTa.js,但我的代码没有加载正确的库。我该如何解决?

脚本

library(V8)

ct <- v8()

ct$source("https://cdnjs.cloudflare.com/ajax/libs/rita/1.1.51/rita-full.js")


ct$eval("var s = 'it was a dark and stormy night.';")

ct$eval("var r = new RiString(s);")

结果

Error in context_eval(join(src), private$context) : ReferenceError: RiString is not defined

我想你只需要稍微调整一下就可以了运行。 RiTa JavaScript 预计在 window 可用的浏览器中。 R V8 中的默认值是 global。幸运的是我们可以很容易地用 global="window" 参数来改变。

library(V8)

ctx <- v8(global="window")
ctx$source("https://cdnjs.cloudflare.com/ajax/libs/rita/1.1.51/rita-full.js")
ctx$get("Object.keys(window)")

您现在应该可以看到所有可用的 RiTa.js。

  [1] "console"      "print"        "window"       "ArrayBuffer" 
  [5] "Int8Array"    "Uint8Array"   "Int16Array"   "Uint16Array" 
  [9] "Int32Array"   "Uint32Array"  "Float32Array" "Float64Array"
 [13] "DataView"     "_RiTa_LTS"    "RiTa"         "RiString"    
 [17] "RiGrammar"    "RiMarkov"     "RiWordNet"    "RiLexicon"   
 [21] "RiTaEvent"