【问题标题】:Integrating LDAvis with shiny将 LDAvis 与闪亮集成
【发布时间】:2016-08-30 22:17:12
【问题描述】:

我正在尝试利用 LDAvis 0.3.1 版附带的闪亮集成。 github(https://github.com/cpsievert/LDAvis/tree/master/inst/examples/shiny)上给出的例子是:

library(LDAvis)
library(shiny)

server <- shinyServer(function(input, output, session) {
  output$myChart <- renderVis({
    with(TwentyNewsgroups,
         createJSON(phi, theta, doc.length, vocab, term.frequency,
                    R = input$nTerms))})
})

ui <- shinyUI(
  fluidPage(
    sliderInput("nTerms", "Number of terms to display", min = 20, max = 40, value = 30),
    visOutput('myChart')
  )
)

shinyApp(ui = ui, server = server)

不过,这个应用程序不会呈现任何输出,所以我有点困惑。谁能提供一个如何将 LDAvis 集成到闪亮应用中的最小示例?

【问题讨论】:

  • 我试过这个。当您将visOutput 替换为textOutput 并将renderVis 替换为renderText 时,它会按预期工作。否则,服务器方法甚至不会对输入更改做出反应。我的猜测是它与 LDAvis 包本身有关。

标签: r shiny


【解决方案1】:

这段代码在我的机器上运行,仍然需要一些时间来加载 javascript(大约 20 秒)。这对您有帮助吗?

library(shiny)
library(LDAvis)

data(TwentyNewsgroups, package = "LDAvis")
ui <- shinyUI(
  fluidPage(
    sliderInput("nTerms", "Number of terms to display", min = 20, max = 40, value = 30),
    visOutput('myChart')
  )
)

server <- shinyServer(function(input, output, session) {
  output$myChart <- renderVis({
    if(!is.null(input$nTerms)){
      with(TwentyNewsgroups, 
           createJSON(phi, theta, doc.length, vocab, term.frequency, 
                      R = input$nTerms))


    } 
           })
})

shinyApp(ui = ui, server = server)

【讨论】:

  • 它确实会做出反应,但由于插件看起来很“沉重”,这需要的时间太长了。替代方法是包含一个操作按钮(即隔离输入)。
  • 感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多