Demonstration of using R/Shiny to interactively explore a real-world, multidimensional dataset, namely, building occupancy data. How to run and view this application: 1. From within RStudio. 2. Principally, it's hosted at <https://gjanee.shinyapps.io/waitz>. Deployment is through RStudio. The application can also be deployed directly from GitHub, and deployment can even be automated, by creating a Docker build file (see next; the included `Dockerfile` is a start, but it will need to call `rsconnect::setAccountInfo` and `rsconnect::deployApp` instead of `shiny::runApp`), then creating a GitHub Action to build and run a container. It will be necessary to pass authentication credentials in as GitHub repository secrets. See [here](https://www.r-bloggers.com/2021/02/deploy-to-shinyapps-io-from-github-actions/) and [here](https://github.com/marketplace/actions/deploy-to-shinyapps-io) for examples. 3. As a container. `Dockerfile` is an example Docker build file. Build a Docker image for the application using `docker built -t waitz .`, run using `docker run -p 8080:8080 waitz`, and view at http[]()://localhost:8080. N.B.: the build process will fail unless newer versions of R and packages, as recorded in the renv lock file here, are used. 4. Using [shinylive](https://posit-dev.github.io/r-shinylive/), which obviates the need for a server and provides a means of running Shiny applications entirely within the user's browser: doesn't work, at least for this application. The application doesn't run at all in Safari, and only partially works in Firefox. Additionally, it takes a long time to load the application, and the application runs so slowly as to be unusable. 5. On [Binder](https://mybinder.org), but only with great difficulty. First, `Dockerfile` must be removed; Binder will attempt to build a container if it detects `Dockerfile`, but that succeeds only if the build file performs several critical, Binder-specific actions. Second, renv must be removed or at least disabled (at minimum, by removing `.Rprofile`) and replaced with an old-style `install.R` script. Then, bugs in Binder (as of this writing) prevent the application from launching by appending `/shiny/waitz` to the URL as stated in the Binder documentation; instead, it will be necessary to append `/rstudio` and then manually launch the application from within the RStudio instance hosted by Binder. Quite painful. 6. On Google Colab: not possible. A Shiny application requires that a port be exposed. Colab provides a way to map a port to the outside world from Python, but not from R.