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)
})