gpt4 book ai didi

R-Shiny 使用 Reactive renderUI 值

转载 作者:行者123 更新时间:2023-12-02 21:47:08 25 4
gpt4 key购买 nike

如何在响应式包装器中使用从 renderUI 元素获取的值?

即我的代码:

CompanyNames <- sqlQuery(connection, "SELECT Companynm FROM RiskMgm_Company")

output$CompNameSelector <- renderUI({
selectInput("compName","Company Name:",as.vector(CompanyNames[,1]))
})

CompID <- reactive({
CompID <<- sqlQuery(paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '",compName,"'"))
})

output$MotorSelector <- renderUI({
selectInput("MachSer","Machine:",sqlQuery(connection,paste("SELECT Motor_func FROM RiskMgm_Motor WHERE Company_ID='",CompID,"'")))
})

我的错误:

Successfilly opened connection to db
Error in paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '", :
could not find function "compName"

我做错了什么?本质上我想要的是 SQL 查询给出的公司列表。然后,根据选择的公司,它将在下一个下拉框中显示属于该公司的电机

谢谢

最佳答案

您可以通过元素的 ID 来引用元素,例如 input$compName。作为一个人为的例子是一个简单 Shiny 的应用程序,有两个 selectInput。第二个 selectInput 选择取决于第一个的值。引用由 renderUI 创建的小部件的输出与引用相同的小部件(如果它们从一开始就在 UI.R 中)没有什么不同:

library(shiny)
myDF <- data.frame(A = 1:4, B = 3:6, C = 6:9, D = 10:13)
runApp(
list(
ui = fluidPage(
uiOutput("myList"),
uiOutput("myNumbers")
)
, server = function(input, output, session){
output$myList <- renderUI({
selectInput("compName", "Company Name:", LETTERS[1:4])
})

output$myNumbers <- renderUI({
selectInput("compNo", "Product Line:", myDF[, input$compName])
})
}
)
)

关于R-Shiny 使用 Reactive renderUI 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27053493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com