4

I am developing a shiny app which is an exploratory data analysis tool. At this point, I am trying to optimise so that data is loaded in once but is readily available for all users. I am aware of the scoping materials on this i.e. Scoping I have the code to load the data in for the app within a global.R file like so:-

#global.R file
library(feather)

dataframe1<-read_feather("df1.feather")
dataframe2<-read_feather("df2.feather")

These are the dataframes that I need to call once and make available to all users of the app. However, I am calling the ui and the server code all within app.R and I have a hunch that this could be problematic.

I have tried a few implementations as guided by what I have been able to see on the web but it is obvious that I am not doing something properly. Here are some examples of what I have tried

source('global.R', local = T)

ui<-fluidPage({

#code for ui

})

server<-function(input,output,server){

# code for server
}

shinyApp(ui,server)

Where the outcome is this:-

enter image description here

The second thing I have tried is having the global file called in onStart parameter in the shinyApp(), but I have the same error.

The global file is saved in the GitLab repo that I am using to deploy this app on shiny server. The app.R script Can any one show me how I can correctly call the global.R file, so that the data is loaded in once and made available to all users of the app? Do I need to split the app.R file into a ui.R and a server.R file?

metaltoaster
  • 380
  • 2
  • 15
  • 1
    Using `app.R` aims at providing a single file application. Accordingly also your global variables can be placed in `app.R`. `global.R` is part of the multi file approach (server.R and ui.R) and is sourced automatically. However, your above code sourcing `global.R` from `app.R` should work. Are you sure this is your issue? What is written to the log files? Also see [this](https://shiny.rstudio.com/articles/app-formats.html). – ismirsehregal Nov 18 '21 at 12:30

0 Answers0