有没有一种方法可以根据R Shiny中所选的选项卡面板更新选项卡集面板中滑块输入的输入



我们尝试使用R Shiny基于三种不同的场景进行新冠肺炎模拟。所有场景都从sliderInput获得了不同的默认值,这些默认值需要根据所选设置和(可选(用户输入传递给服务器函数。

我在UI中得到了以下选项卡SetPanel

tabsetPanel(id = "inTabset", selected = NULL,
tabPanel("Großraumbuero",
fluidRow(
column(4, sliderInput("people",
"Personen im Raum:",
2, 15, 8)) ,

column(4, sliderInput("raum",
"Raumgröße (in m²):",
10, 35, 25)),
column(4,sliderInput("zeit",
"Aufenthaltsdauer (in Std.):",
1, 16, 8)),

)),
tabPanel("Bar",
fluidRow(
column(4, sliderInput("people2",
"Personen im Raum:",
2, 15, 15)) ,

column(4, sliderInput("raum",
"Raumgröße (in m²):",
10, 35, 23)),
column(4,sliderInput("zeit",
"Aufenthaltsdauer (in Std.):",
1, 16, 6)),

)),
tabPanel("Zug",
fluidRow(
column(4, sliderInput("people3",
"Personen im Raum:",
2, 15, 4)) ,

column(4, sliderInput("raum",
"Raumgröße (in m²):",
10, 35, 10)),
column(4,sliderInput("zeit",
"Aufenthaltsdauer (in Std.):",
1, 16, 4)),

))

并在我的R服务器中尝试此操作:

observeEvent(input$inTabset, {
if (input$inTabset == "Zug") {
num_people <- input$people3
} else if (input$inTabset == "Bar") {
num_people <- input$people2
} else if (input$inTabset == "Großraumbuero") {
num_people <- input$people
}

}
)
paste(num_people)

然而,这并不能从UI中提供受欢迎的值。我尝试了几种方法,它们都没有在用户输入或选项卡选择时将值从我的人员[2|3]输入传递给num_people变量。

事先非常感谢,希望有办法做到这一点。

您的变量num_people仅在观察器内部可用。如果希望它在外部,可以创建一个reactiveVal对象。试试这个

server <- function(input, output, session) {
numpeople <- reactiveVal(0)
observeEvent(input$inTabset, {
if (input$inTabset == "Zug") {
num_people <- input$people3
} else if (input$inTabset == "Bar") {
num_people <- input$people2
} else if (input$inTabset == "Großraumbuero") {
num_people <- input$people
}
numpeople(num_people)
print(num_people)
})
observe(print(numpeople()))
}

相关内容

  • 没有找到相关文章

最新更新