在 Shiny 中引用具有反应性输入变量的列
referencing a column with reactive input variable in Shiny
尝试在 Shiny 中使用 lm 函数使用输入变量值来引用 "results" 数据框中的指定列。我已经在控制台中对此进行了测试并且它工作正常但是当我实际上 运行 应用程序时却没有。
我不认为所有代码都是必要的(但如果需要我会很乐意包含更多代码)所以这里是 server.r:
中的重要部分
compareVar2 <- reactive({
if(input$compareVar2 == 'first'){
return (results$firstPostScore)
}else if(input$compareVar2 == 'last'){
return (results$lastPostScore)
}else if(input$compareVar2 == 'avg'){
return (results$avgPostScore)
}else {return (results$avgPostScore)} #just as a fall-back default
output$analysis <- renderPrint({
analysis <- lm(preScore ~ compareVar2, data = results)
return (summary(analysis))
})
我收到以下错误消息:
model.frame.default(公式 = preScore ~ compareVar2,数据 = 结果,:
变量 'compareVar2'
的无效类型(闭包)
我似乎在任何地方都找不到与此相关的任何内容:-/
谢谢!
compareVar2 是一个函数,因此您应该将其称为 compareVar2():
analysis <- lm(preScore ~ compareVar2(), data = results)
尝试在 Shiny 中使用 lm 函数使用输入变量值来引用 "results" 数据框中的指定列。我已经在控制台中对此进行了测试并且它工作正常但是当我实际上 运行 应用程序时却没有。
我不认为所有代码都是必要的(但如果需要我会很乐意包含更多代码)所以这里是 server.r:
中的重要部分compareVar2 <- reactive({
if(input$compareVar2 == 'first'){
return (results$firstPostScore)
}else if(input$compareVar2 == 'last'){
return (results$lastPostScore)
}else if(input$compareVar2 == 'avg'){
return (results$avgPostScore)
}else {return (results$avgPostScore)} #just as a fall-back default
output$analysis <- renderPrint({
analysis <- lm(preScore ~ compareVar2, data = results)
return (summary(analysis))
})
我收到以下错误消息:
model.frame.default(公式 = preScore ~ compareVar2,数据 = 结果,:
变量 'compareVar2'
我似乎在任何地方都找不到与此相关的任何内容:-/
谢谢!
compareVar2 是一个函数,因此您应该将其称为 compareVar2():
analysis <- lm(preScore ~ compareVar2(), data = results)