RShiny : Utilisation d'une table Excel ayant plusieurs onglets après l'Upload en

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

alexandre cavasino
Messages : 34
Enregistré le : 13 Juin 2017, 08:14

RShiny : Utilisation d'une table Excel ayant plusieurs onglets après l'Upload en

Messagepar alexandre cavasino » 04 Juil 2018, 14:04

Bonjour à tous,
je vous explique le problème que je rencontre en ce moment.
Dans mon interface Shiny j'aimerai pouvoir importer une base de donnée (BDD) contenant 3 feuilles (feuille1, feuille2 et feuille3)
J'aimerai donc pouvoir les télécharger depuis l'interface pour ensuite les utiliser. Le package Xlsx permet de choisir les feuilles (option SheetName = ) que l'on souhaite. La seule chose est que dans mon deuxieme onglet j'aimerai par exemple pouvoir travailler sur la feuille numéro 2 de la base importée précédemment en feuille 1.

Par exemple comment je peux dans mon onglet 2 faire un summary de la feuille numéro 2 sans à chaque fois retourner sur l'onglet numéro et séléctionner la feuille 1. Il doit bien y exister un moyen que j'ignore.
Merci d'avance pour votre aide, voici le code :

Code : Tout sélectionner

library(shiny)
  ui<- shinyUI(fluidPage(
    tabsetPanel(
     tabPanel('Onglet 1'
    ,
    sidebarPanel(
      fileInput('file1', 'Choose XLS File',
                accept=c('text/csv', 'text/comma-separated- values,text/plain', '.xlsx'))
      ,
      tags$hr(),
      checkboxInput('header', 'Header', TRUE),
      radioButtons('sheetName', 'Feuille',
                   c(Feuille1='Feuille1',
                     Feuille2='Feuille2'
                     ),
                   'Comma'),
      radioButtons('dec', 'Decimal seperator',
                   c('komma'=",",
                     'punktum'="."), 'komma')
    )
    ,
    mainPanel(
      tableOutput(outputId = 'table.output'),
      verbatimTextOutput("plot1")
    )),
    tabPanel('Onglet 2',
             verbatimTextOutput("plot2"))
    ))
)
 server<-function(input, output){
    mydata <- reactive({
      inFile <- input$file1
      if (is.null(inFile))
        return(NULL)
      tbl <- read.xlsx2(inFile$datapath,sheetName = input$sheetName)
      return(tbl)
    })
    output$table.output <- renderTable({
      mydata()
    })
    output$plot1 <- renderPrint({
      x <- mydata()
      summary(x)
    })
    output$plot2 <- renderPrint({
   #JE ne sais pas quoi faire pour faire par exemple un summary de la feuille2
    })
  }

shinyApp(ui = ui, server = server)

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 1 invité