r Shiny Server从输入中创建向量,以用于子集数据框架


server <- (function(input, output, session){
  s1m <- reactive({c(input$s1m1,input$s1m2,input$s1m3)})
  library(stringdist)
  result <- responses[which.max(apply(responses,1,function(vec,dat){sum(vec==dat)},s1m)),]
  output$result <- renderUI(result)
})

我需要使用3个不同的用户输入S1M1,S1M2,S1M3专门创建一个字符向量" S1M"

我遇到的错误是vec == dat中的错误:比较(1)仅适用于原子和列表类型

我认为这是因为S1M被反应性()包裹,并且不被视为向量。因此,我的问题是如何将其归因于向量,还是有其他方法可以使用用户输入来创建向量?

非常感谢!

我认为您应该创建反应值如下。我没有对此进行测试,但您也可以将它们包裹在数据框架或列表中。

server <- (function(input, output, session) {
  s1m <- reactiveValues({
    c(input$s1m1, input$s1m2,input$s1m3)
  })
  library(stringdist)
  result <-
    responses[which.max(apply(responses, 1, function(vec, dat) {
      sum(vec == dat)
    }, s1m())), ]
  output$result <- renderUI(result)
})

相关内容

  • 没有找到相关文章

最新更新