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)