2

I'm new to this forum so please do forgive my mistakes; I'm trying to code a shiny proteomic interface. for that I was stuck one way in making multiple plots and an other in making them reactive; furthermore when I try to load multiple files it works in one tab and in the next tab it only shows me one and when I reupload another file even if the original tab gets updated but the second doesn't it stays in the first plot. here is a portion of the code:

library(shiny)

shinyServer(function(input, output, session) {

library(MALDIquantForeign)
library(MALDIquant)

##ENTREE

    infile_p<-reactive({

            f<-input$p_file
            fd<-f$datapath

           for(i in 1:length(f))
            {
               file.rename(fd[i],f$name[i])
            }

        paste(f$name)

      })

##VARIABLE INTERMEDIAIRE

       p<-reactiveValues(data = NULL)


                      ##PRE-PROCESS
                      observeEvent(input$Process ,{

                        l<-import(infile_p(), type="auto")


                         for (i in 1:length(l)) {


                            local({
                              my_i <- i
                              plotname <- paste("bPlot", my_i, sep="")

                              output[[plotname]] <- renderPlot({
                              plot(l[[my_i]], width="700", height="450")

                               })                    


                          })
                          }


                         p$data<-list("before"=l)

                      })


                    ##SORTIE






                         output$bPre <- renderUI({


                            l<-p$data$before

                            plot_output_list <- lapply(1:length(l),   function(i) {
                            plotname <- paste("bPlot", i, sep="")
                            plotOutput(plotname)
                            })

                            do.call(tagList, plot_output_list)
                         })

                          output$vStabl<- renderUI({

                            l<-p$data$before

                            vplot_output_list <- lapply(1:length(l), function(i) {
                              vplotname <- paste("vPlot", i, sep="")

                              plotOutput(vplotname)
                            })

                            do.call(tagList, vplot_output_list)
                          })


                        })


                         observe({
                           if(is.null(p$data$before)) return()

                           invalidateLater(5000, session)
                           ll<-reactiveValues(
                                data=transformIntensity(p$data$before,method="sqrt")

                          )

                           for (i in 1:length(v)) {
                            local({
                             my_i <- i
                              vplotname <- paste("vPlot", my_i, sep="")


                              output[[vplotname]] <- renderPlot({
                              plot(ll$data[[my_i]], width="700", height="450")
                              dev.off()

                              })


                                })
                          }
                        })


 })

And the ui containes two uioutputs; please do help me i really want to learn this.

Bilal
  • 2,883
  • 5
  • 37
  • 60
  • 1
    Welcome to SO, please update your code so others can reproduce your question. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Pork Chop Mar 14 '16 at 08:41

0 Answers0