R Shiny:选中复选框后立即显示所有测试
R Shiny: Displays all tests at once after checking the checkboxes
我正在尝试制作一个 R Shiny 应用程序,它会在选中复选框后同时打印 3 个统计测试。
问题是该应用程序仅打印一个输出,而其他输出“未找到”。Like can be seen here
我试过
if(input$Stattest=='PP' | input$Stattest==1)
但是..它不起作用。
我的代码是:
output$Stattest = renderUI({
checkboxGroupInput("Stattest", "Choose test for stationarity", choices = c("ADF","PP","KPSS-TREND"))
})
adf <- reactive({
if(is.na(input$Stattest)){
return(NULL)}
if(input$Stattest=='ADF'){
d=list()
c=list(df_sel()[[print(input$y)]],df_sel()[[print(input$x1)]],df_sel()[[print(input$x2)]])
for (i in 1:3){
d[[i]]=adf.test(c[[i]])
}
}
d
})
output$ADF=renderPrint({
adf()
})
pp <- reactive({
if(is.na(input$Stattest)){
return(NULL)}
if(input$Stattest=='PP' | input$Stattest==1){
ptest=list()
d=list(df_sel()[[print(input$y)]],df_sel()[[print(input$x1)]],df_sel()[[print(input$x2)]])
for (i in 1:3){
ptest[[i]]=pp.test(d[[i]])
}
}
ptest
})
output$PP=renderPrint({
pp()
})
主要“问题”是我需要创建此 reactive
函数,因为所有这些测试都将打印在 pdf 报告中。
知道我怎样才能让它发挥作用吗?
提前致谢。
制作 c
和关联的 'test variable names' 反应式表达式,执行所需的测试,将所有内容拉入最终列表,然后根据用户输入显示到 UI:
library(shiny)
ui <- fluidPage(
uiOutput(outputId = "Stattest"),
verbatimTextOutput(outputId = "test_result")
)
server <- function(input, output, session) {
output$Stattest = renderUI({
checkboxGroupInput(
inputId = "stat_test",
label = "Stat test:",
choices = c("ADF","PP","KPSS-TREND")
)
})
# Since `df_sel()` is reactive, so should `c` be:
# <-- adf.test -->
cc <- reactive({
list(df_sel()[[input$y]], df_sel()[[input$x1]],
df_sel()[[input$x2]]) |>
lapply(FUN = adf.test)
})
# <-- pp.test -->
dd <- reactive({
list(df_sel()[[input$y]], df_sel()[[input$x1]],
df_sel()[[input$x2]]) |>
lapply(FUN = pp.test)
})
# <-- kpss-trend -->
# ee <- reactive({
# list(subset_as_required) |>
# lapply(FUN = your_kpss_trend_function)
# })
# <-- Final results -->
all_results <- reactive({
list(ADF = cc(), PP = dd(), "KPSS-TREND" = ee())
})
output$test_result <- renderPrint({
for (test in input$stat_test) {
print(all_results()[test])
}
})
}
shinyApp(ui, server)
我正在尝试制作一个 R Shiny 应用程序,它会在选中复选框后同时打印 3 个统计测试。 问题是该应用程序仅打印一个输出,而其他输出“未找到”。Like can be seen here
我试过
if(input$Stattest=='PP' | input$Stattest==1)
但是..它不起作用。
我的代码是:
output$Stattest = renderUI({
checkboxGroupInput("Stattest", "Choose test for stationarity", choices = c("ADF","PP","KPSS-TREND"))
})
adf <- reactive({
if(is.na(input$Stattest)){
return(NULL)}
if(input$Stattest=='ADF'){
d=list()
c=list(df_sel()[[print(input$y)]],df_sel()[[print(input$x1)]],df_sel()[[print(input$x2)]])
for (i in 1:3){
d[[i]]=adf.test(c[[i]])
}
}
d
})
output$ADF=renderPrint({
adf()
})
pp <- reactive({
if(is.na(input$Stattest)){
return(NULL)}
if(input$Stattest=='PP' | input$Stattest==1){
ptest=list()
d=list(df_sel()[[print(input$y)]],df_sel()[[print(input$x1)]],df_sel()[[print(input$x2)]])
for (i in 1:3){
ptest[[i]]=pp.test(d[[i]])
}
}
ptest
})
output$PP=renderPrint({
pp()
})
主要“问题”是我需要创建此 reactive
函数,因为所有这些测试都将打印在 pdf 报告中。
知道我怎样才能让它发挥作用吗?
提前致谢。
制作 c
和关联的 'test variable names' 反应式表达式,执行所需的测试,将所有内容拉入最终列表,然后根据用户输入显示到 UI:
library(shiny)
ui <- fluidPage(
uiOutput(outputId = "Stattest"),
verbatimTextOutput(outputId = "test_result")
)
server <- function(input, output, session) {
output$Stattest = renderUI({
checkboxGroupInput(
inputId = "stat_test",
label = "Stat test:",
choices = c("ADF","PP","KPSS-TREND")
)
})
# Since `df_sel()` is reactive, so should `c` be:
# <-- adf.test -->
cc <- reactive({
list(df_sel()[[input$y]], df_sel()[[input$x1]],
df_sel()[[input$x2]]) |>
lapply(FUN = adf.test)
})
# <-- pp.test -->
dd <- reactive({
list(df_sel()[[input$y]], df_sel()[[input$x1]],
df_sel()[[input$x2]]) |>
lapply(FUN = pp.test)
})
# <-- kpss-trend -->
# ee <- reactive({
# list(subset_as_required) |>
# lapply(FUN = your_kpss_trend_function)
# })
# <-- Final results -->
all_results <- reactive({
list(ADF = cc(), PP = dd(), "KPSS-TREND" = ee())
})
output$test_result <- renderPrint({
for (test in input$stat_test) {
print(all_results()[test])
}
})
}
shinyApp(ui, server)