Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a working R application that I want to make available online using Shiny. My application receives a file as input, so the client uploads the file through ui.R. server.R receives the file and then I want to call my app. However, when I use source(), myApp does not know the file that I have received in the server.R and throws error : object not found. This is the code for server.R

shinyServer(function(input, output) {

   output$contents <- renderTable({
   inFile <- input$file1
   if (is.null(inFile))
      return(NULL)
   else{
      tdata <- as.matrix(read.table(inFile$datapath))
      head(tdata, n = 2)
      source("./CODE/run_myApp.r")
   }
  })
})

However, myApp doesn't include tdata (which is needed as the input file in my current app).

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
284 views
Welcome To Ask or Share your Answers For Others

1 Answer

To use source in your shiny app you need to invoke the local = TRUE argument so in this case:

shinyServer(function(input, output) {

   output$contents <- renderTable({
   inFile <- input$file1
   if (is.null(inFile))
      return(NULL)
   else{
      tdata <- as.matrix(   read.table(inFile$datapath))
      head(tdata, n = 2)
      source("./CODE/run_myApp.r", local = TRUE)
   }
  })
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...