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

gol*_*uth 2 javascript v8 r

我想在 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);")
Run Code Online (Sandbox Code Playgroud)

结果

Error in context_eval(join(src), private$context) : ReferenceError: RiString is not defined
Run Code Online (Sandbox Code Playgroud)

tim*_*lio 5

我认为您只需要稍作调整即可启动并运行它。RiTa JavaScript 预计将在浏览器中window可用。R 中的默认值V8global。幸运的是,我们可以很容易地通过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)")
Run Code Online (Sandbox Code Playgroud)

您现在应该会看到所有可用的 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"
Run Code Online (Sandbox Code Playgroud)