using Source() in Shiny
r, shiny
Solution
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)
}
})
})
Problem
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).