Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中创建动态输入时如何过滤不同的输入组合_R_Shiny - Fatal编程技术网

在R中创建动态输入时如何过滤不同的输入组合

在R中创建动态输入时如何过滤不同的输入组合,r,shiny,R,Shiny,当我尝试使用outputUI/renderUI组合在shiny中创建动态面板时,我被卡住了 我从R语言开始,一直使用函数作为过滤器,在“if”语句中分离不同的输入案例 library(shiny) ui<- fluidPage( sidebarLayout(sidebarPanel(radioButtons("sim","Type de simulation:", list("Simu

当我尝试使用outputUI/renderUI组合在shiny中创建动态面板时,我被卡住了

我从R语言开始,一直使用函数作为过滤器,在“if”语句中分离不同的输入案例



library(shiny)


 ui<- fluidPage(
    sidebarLayout(sidebarPanel(radioButtons("sim","Type de simulation:",
                                            list("Simulation d'un nombre de mélanges déterminés aux paramètres aléatoires" = "alea",
                                                 "Simulation de deux mélanges aux paramètres choisis" = "escogido")),
                               radioButtons("dist", "Distribution type:",list("Normal" = "norm","Poisson" = "poiss")),
                               uiOutput('InputUser'),
                               sliderInput("N","Nombre d'observations:", value = 100,min = 50, max = 1000),
                               uiOutput('InputUser2'),
                               actionButton("goButton","Allons-y")) ,
    mainPanel(
      uiOutput('Tables')
    )
  ))



  server <- function(input, output, session){
      filtre_A<-function(sim,dist) {return(sim=="alea"&dist=="norm")}
      filtre_B<-function(sim,dist) {return(sim=="alea"&dist=="poiss")}
      filtre_C<-function(sim,dist) {return(sim=="escogido"&dist=="norm")}
      filtre_D<-function(sim,dist) {return(sim=="escogido"&dist=="poiss")}

      filtre_Z<-function(dim) {return(dim==1)}

      filtre_1<-function(sim,dist,dim) {return(sim=="alea"&dist=="norm"&dim>1)}
      filtre_2<-function(sim,dist,dim) {return(sim=="alea"&dist=="norm"&dim==1)}
      filtre_3<-function(sim,dist,dim) {return(sim=="escogido"&dist=="norm")}
      filtre_4<-function(sim,dist,dim) {return(sim=="alea"&dist=="poiss")}
      filtre_5<-function(sim,dist,dim) {return(sim=="escogido"&dist=="poiss")}
      filtre_6<-function(sim,dist,dim) {return(dist=="norm"&dim==2)}
      filtre_7<-function(sim,dist,dim) {return(dist=="norm"&dim==3)}


      output$InputUser<- renderUI({
        if (filtre_A(input$sim,input$dist)) {
          list(numericInput("dim","Dimension du mélange Gaussien",min=1,max=10,value=1),
          numericInput("npar","Nombre de lois mélangées",min=2,max=20,value=2))
        }
        if (filtre_B(input$sim,input$dist)) {
           numericInput("npar","Nombre de lois mélangées",min=2,max=20,value=2)
        }
        if (filtre_C(input$sim,input$dist)) { 
          list(sliderInput("pi1","π1",min=0.1,max=1.0,step=0.1,value=0.5),
          sliderInput("mu1","µ1",min=-10,max=10,step=0.1,value=-5),
          sliderInput("sig1","σ1",min=0.1,max=1.0,step=0.01,value=.2),
          sliderInput("mu2","µ2",min=-10,max=10,step=0.1,value=5),
          sliderInput("sig2","σ2",min=0.1,max=1.0,step=0.01,value=.8))
          }
        if (filtre_D(input$sim,input$dist)) {
         list(sliderInput("pi1","π1",min=0.1,max=1.0,step=0.1,value=.5),
         sliderInput("lambda1","λ1",min=0.1,max=10,step=0.1,value=1),
         sliderInput("lambda2","λ2",min=0.1,max=10,step=0.1,value=9))
        }
      })

      output$InputUser2 <-renderUI({
        if (filtre_Z(input$dim)) {
           list(radioButtons("EM", "Implémentation de l'algorithme EM ?",list("Oui" = "Y","Non" = "N")),
          conditionalPanel(condition = "input.EM=='Y' & input.dim==1",sliderInput("nmax2","Nombre d'itérations maximum algorithme EM",value=100,min=1000,max=100000)))
        }
      })

      output$Tables <- renderUI({


        if ((filtre_2(input$sim,input$dist,input$dim)|
             filtre_3(input$sim,input$dist,input$dim)|
             filtre_4(input$sim,input$dist,input$dim)|
             filtre_5(input$sim,input$dist,input$dim))&(
               filtre_8(input$EM,input$dist,input$dim)|
               filtre_9(input$EM,input$dist,input$dim))) {
          fun<-function(l) {do.call(tabPanel,l)}
          myTabs1<-list(list("Figure", plotOutput("figure")),
                        list("Groupement",plotOutput("clusters")),
                        list("Paramètres empiriques",plotOutput("esti")),
                        list("Données",plotOutput("donnes")),
                        list("Paramètres des lois",plotOutput("parameter")))
          myTabs2<-lapply(myTabs1,fun)
          do.call(tabsetPanel,myTabs2)
        }

        if ((filtre_2(input$sim,input$dist,input$dim)|
             filtre_3(input$sim,input$dist,input$dim)|
             filtre_4(input$sim,input$dist,input$dim)|
             filtre_5(input$sim,input$dist,input$dim))&(!(
               filtre_8(input$EM,input$dist,input$dim)|
               filtre_9(input$EM,input$dist,input$dim)))) {
          fun<-function(l) {do.call(tabPanel,l)}
          myTabs1<-list(list("Figure", plotOutput("figure")),
                        list("Groupement",plotOutput("clusters")),
                        list("Données",plotOutput("donnes")),
                        list("Paramètres des lois",plotOutput("parameter")))
          myTabs2<-lapply(myTabs1,fun)
          do.call(tabsetPanel,myTabs2)
        }


        if (filtre_6(input$sim,input$dist,input$dim)) {
          fun<-function(l) {do.call(tabPanel,l)}
          myTabs1<-list(list("Groupement",plotOutput("clusters")),
                        list("Données",plotOutput("donnes")),
                        list("Paramètres des lois",plotOutput("parameter")))
          myTabs2<-lapply(myTabs1,fun)
          do.call(tabsetPanel,myTabs2)


        }
        if (filtre_7(input$sim,input$dist,input$dim)) {
          fun<-function(l) {do.call(tabPanel,l)}
          myTabs1<-list(list("Figure", plotOutput("figure")),


                        list("Données",plotOutput("donnes")),
                        list("Paramètres des lois",plotOutput("parameter")))
          myTabs2<-lapply(myTabs1,fun)
          do.call(tabsetPanel,myTabs2)

        }
        if (filtre_1(input$sim,input$dist,input$dim)&(!(filtre_7(input$sim,input$dist,input$dim)|filtre_6(input$sim,input$dist,input$dim)))) {
          fun<-function(l) {do.call(tabPanel,l)}
          myTabs1<-list( list("Données",plotOutput("donnes")),
                         list("Paramètres des lois",plotOutput("parameter")))
          myTabs2<-lapply(myTabs1,fun)
          do.call(tabsetPanel,myTabs2)
        }
      })
  }

  shinyApp(ui = ui, server = server)

图书馆(闪亮)
用户界面