diff --git a/generalized ln-linear.R b/generalized ln-linear.R index 7c4e4edb68d28f98bf21ca22213024c234e9f722..52d3a09555cdf480a26ed5ddbaf18cee8c4b4a59 100644 --- a/generalized ln-linear.R +++ b/generalized ln-linear.R @@ -4,6 +4,7 @@ library(dplyr) library(rhandsontable) library(data.table) library(numDeriv) +library(gridExtra) ln_lineaire <- function(labvdep,don,zm,zd,alpha){ @@ -353,7 +354,13 @@ ui <- fluidPage( h3("Choose quantile (%)"), numericInput("alpha", "Quantile", min=1, value=50, max=100), - actionButton("run", "Show results")), + actionButton("run", "Show results"), + br(), + br(), + br(), + h3("Download results"), + textInput("title","Document title","Results"), + downloadButton("download","Download")), # Main panel for displaying outputs ---- @@ -365,6 +372,7 @@ ui <- fluidPage( br(), p(strong("> Select the csv file containing the data to be analyzed")), p("It has to be a csv file with semicolon separator"), + p("The file should contain the different dependent variables (ex : TSS, CDO, BDO,...) and the different explanatory variables with corresponding column headers (ex: facility, age group,...)"), br(), p(strong("> Choose the dependent variable")), p("For example TSS"), @@ -386,7 +394,10 @@ ui <- fluidPage( br(), p(strong("> Choose the quantile you want to be returned by the model")), br(), - p(strong("> Lauch the model by clicking on the 'Show results' button. The table of estimates and the table of quantiles appear in the 'Results' panel.")) + p(strong("> Lauch the model by clicking on the 'Show results' button. The table of estimates and the table of quantiles appear in the 'Results' panel.")), + br(), + p(strong("> Export results")), + p("It is finaly possible to comment the results (dataset used, reference set, conclusions,...) and to export them in a word file using the 'Download' button (with a title choosen by the user).") ), tabPanel("Data Table", @@ -401,7 +412,12 @@ ui <- fluidPage( h3("> Quantiles"), textOutput("lab_quant"), - dataTableOutput("quantile")) + dataTableOutput("quantile"), + + + h3("Comment"), + tags$textarea(id="description", rows=6, cols=80,)) + ) ) ) @@ -410,7 +426,7 @@ ui <- fluidPage( # server server <- function(input, output) { - + #Reactive values values <- reactiveValues(mat=NULL, don=NULL) # Importation du fichier de donnees @@ -503,7 +519,7 @@ server <- function(input, output) { observeEvent(input$run,{ outputs <- ln_lineaire(labvdep=input$var,don=values$don,zm=input$median,zd=input$disp,alpha=input$alpha/100) - + # return table of estimates output$lab_res <- renderText({ paste("Parameter: ",isolate(input$var),"\n") @@ -516,6 +532,33 @@ server <- function(input, output) { paste("Dependent variable: ",isolate(input$var)," - Table of observed and theoretical ",input$alpha,"% quantiles:\n") }) output$quantile <- renderDataTable(outputs[[2]], options = list(dom = 't', searching = FALSE)) + + output$download <- downloadHandler( + filename = function(){paste0(input$title, ".doc")}, + content = function(file) { + # Copy the report file to a temporary directory before processing it, in + # case we don't have write permissions to the current working dir (which + # can happen when deployed). + tempReport <- file.path(tempdir(), "results.Rmd") + file.copy("results.Rmd", tempReport, overwrite = TRUE) + + # Set up parameters to pass to Rmd document + params <- list(description = input$description, + estimates = outputs[[1]], + quantile = outputs[[2]] + ) + + # Knit the document, passing in the `params` list, and eval it in a + # child of the global environment (this isolates the code in the document + # from the code in this app). + rmarkdown::render(tempReport, + output_file = file, + params = params, + envir = new.env(parent = globalenv()) + ) + } + ) + })