Динамическое создание графиков на основе выбранных в selectInput элементах

Есть задача динамического создания графиков на основе выбранных в selectInput элементах, данные в selectInput загружаются из .csv файла(название колонок)

ui.r

##ui.R
library(shiny)
library(shinydashboard)
shinyUI(fluidPage(
  titlePanel("Q"),

  sidebarLayout(
    sidebarPanel(
      fileInput('file1','Chose CSV file',
                accept = c('text/csv','text/comma-separated-values,text/plain','.csv')
      ),
      #tags$hr(),
      checkboxInput('header','Header',TRUE),
      selectInput('column','Chose columns:', choices = NULL, selected = NULL, multiple = TRUE)
      #uiOutput("column"),

    ),
    mainPanel(
      #uiOutput('mytabs'),
      tabsetPanel(
        tabPanel('Data',tableOutput('tbl')),
        tabPanel('Histogram',plotOutput('graph')),
        tabPanel('GG',textOutput('result'))
      )
    )
  )
))

server.r

library(shiny)
library(DT) # need datatables package

choise<-function(file1,wheader){
  if (is.null(file1))
    return(NULL)
  frm<-read.csv2(file1$datapath,header=wheader)
return(frm[1,])
}
fr<-function(file1,wheader,i){
  if (is.null(file1))
    return(NULL)
  frm<-read.csv2(file1$datapath,header=wheader)
  return(frm[,i])
}

shinyServer(function(input, output, session) {

  output$tbl<-renderTable({inFile<-input$file1
  if (is.null(inFile))
      return(1)
  read.csv2(inFile$datapath,header=input$header)    
  }, striped = TRUE, bordered = TRUE,  hover = TRUE)

  test<-reactive({
    choise(input$file1,input$header)
  })

  updateSelectInput(session,'column','Choise column:', reactive(as.list(test())))
 # output$column<-renderUI({

  #  selectInput("column","Chose columns:", as.list(test()), selected = NULL, multiple = TRUE)


   # })

  output$graph<-renderPlot({
    f<-fr(input$file1,input$header,3)
    plot(f,                                      
         ylim = c(0, 200),                                   
         col = 'green',                                      
         type = 'l') 
  }
  )


  })

Используя на серверной части:

output$column<-renderUI({
  selectInput("column","Chose columns:", as.list(test()), selected = NULL, multiple = TRUE)
}

Позволило заполнять selectInput названием колонок, однако я не могу получить доступ к выбранным значениям. Мб проблема решается элементарно, однако это только моя первая программа на R, так что не судите строго.


Ответы (0 шт):