Это ShinyApp, который выводит график и таблицу на основе ввода данных пользователем. Как только пользователь нажимает кнопку «перейти», значения обновляются.
Я не мог решить, использовать ли «eventReactive» для каждой переменной, такой как pt_class, arm, freq и т. Д., Или использовать «ObservEvent» в начале, чтобы зафиксировать нажатие «go» один раз. Я выбрал последнее, но не могу понять, почему возникает эта ошибка:
Warning: Error in freq: could not find function "freq"
72: observeEventHandler [~/ShinyApp/app.R#108]
1: runApp
Как вы можете видеть в приведенном ниже коде, я уже определил "freq" ... Заранее приносим свои извинения, поскольку приложение полагается на другие сценарии Python, но я рад поделиться ими, если они необходимы для диагностики проблемы.
ui <- navbarPage(numericInput(inputId = "vl",
"Viral load threshold (copies/mL):", value = 1000, min=50, max=10000000),
radioButtons("one_or_duration", "Duration at or above viral load threshold:",
c("A single measurement","Multiple measurements")),
radioButtons("pt_class", "Time of treatment:",
c("All study participants","Early treated participants","Chronic treated participants")),
br(),
radioButtons("nnrti", "Include participants on NNRTIs?",
c("No, exclude participants on NNRTIs","Yes, include participants on NNRTIs")),
radioButtons("freq", "Expected frequency of post-treatment controllers:",
c("Same frequency as observed by authors","Input expected frequency")),
actionButton(inputId="go",label="Go!"),
mainPanel(
plotOutput(outputId = "graph"), DT::dataTableOutput(outputId="table")))
server <- function(input, output,session) {
observeEvent(input$go,{
one_or_duration <-
if(input$one_or_duration == "A single measurement"){
"single"}
else if(input$one_or_duration == "Multiple measurements"){
"multiple"}
nnrti <-
if(input$nnrti == "Yes, include participants on NNRTIs"){
"yes"}
else if(input$nnrti == "No, exclude participants on NNRTIs"){
"no"}
freq <-
if(input$freq == "Same frequency as observed by authors"){
"same"}
else if(input$freq == "Input expected frequency"){
"diff"}
pt_class <-
if(input$pt_class == "All study participants"){
"all"}
else if(input$pt_class == "Early treated participants"){
"early"}
else if(input$pt_class == "Chronic treated participants"){
"chronic"}
ptcs_plus_ncs <-
if (freq() == "same"){do_this
}
})}
shinyApp(ui = ui, server = server)