Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

R shiny application stops execution of code after closing

This Shiny UI is placed within a larger code piece. When I run my code the execution of code after the application stops sometime after closing not always in the same place and without error. The code without the application runs fine and does not stop. Is there a way I need to be calling a shiny app within my R code?

Version info:

version
               _                                
platform       x86_64-w64-mingw32               
arch           x86_64                           
os             mingw32                          
crt            ucrt                             
system         x86_64, mingw32                  
status                                          
major          4                                
minor          2.2                              
year           2022                             
month          10                               
day            31                               
svn rev        83211                            
language       R                                
version.string R version 4.2.2 (2022-10-31 ucrt)
nickname       Innocent and Trusting      

The code example:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

commonnames <- c("aaaple", "peear", "banana","pare","kiwwi","bannnana")
vector <-  c("apple", "pear", "banana","orange","kiwi","mango","grapes")

library(shiny)
# Define UI ----
ui <- fluidPage(
  titlePanel("Brands To Match To"),
  sidebarLayout(
    sidebarPanel(
      width = 10,
      hr("Common User Entered Words:"),
      hr(),
      x <- (paste(commonnames, collapse = ", ")),
      hr(),
      textInput("word1", vector[1]),
      textInput("word2", vector[2]),
      textInput("word3", vector[3]),
      textInput("word4", vector[4]),
      textInput("word5", vector[5]),
      textInput("word6", vector[6]),
      textInput("word7", vector[7]),
    ),
    mainPanel(
      width = 10,
      actionButton("save", "Save")
    )
  )
)

# Define server logic ----
server <- function(input, output, session) {
  words <- reactiveValues(words = list())

  observeEvent(input$save, {
    words$words <- list(
      word1 = input$word1,
      word2 = input$word2,
      word3 = input$word3,
      word4 = input$word4,
      word5 = input$word5,
      word6 = input$word6,
      word7 = input$word7
    )
  })

  observe({
    assign("words", words$words, envir = .GlobalEnv)
  })

  session$onSessionEnded(function() {
    stopApp()
  })
}

# Run the application ----
shinyApp(ui, server)


#Additional R code below here after exiting application does not run

>Solution :

Try this (hijacked your save button):

commonnames <- c("aaaple", "peear", "banana","pare","kiwwi","bannnana")
vector <-  c("apple", "pear", "banana","orange","kiwi","mango","grapes")

library(shiny)
# Define UI ----
ui <- fluidPage(
  titlePanel("Brands To Match To"),
  sidebarLayout(
    sidebarPanel(
      width = 10,
      hr("Common User Entered Words:"),
      hr(),
      x <- (paste(commonnames, collapse = ", ")),
      hr(),
      textInput("word1", vector[1]),
      textInput("word2", vector[2]),
      textInput("word3", vector[3]),
      textInput("word4", vector[4]),
      textInput("word5", vector[5]),
      textInput("word6", vector[6]),
      textInput("word7", vector[7]),
    ),
    mainPanel(
      width = 10,
      actionButton("save", "Save")
    )
  )
)

# Define server logic ----
server <- function(input, output, session) {
  words <- reactiveValues(words = list())
  
  observeEvent(input$save, {
    stopApp()
  })
  
  observe({
    assign("words", list(
      word1 = input$word1,
      word2 = input$word2,
      word3 = input$word3,
      word4 = input$word4,
      word5 = input$word5,
      word6 = input$word6,
      word7 = input$word7
    ), envir = .GlobalEnv)
  })
  
  session$onSessionEnded(function() {
    stopApp()
  })
}

# Run the application ----
shinyApp(ui, server)


# code after shiny
234567
words
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading