Learn R Programming

⚠️There's a newer version (1.6.7) of this package.Take me there.

Radiant - Business analytics using R and Shiny

Radiant is an open-source platform-independent browser-based interface for business analytics in R. The application is based on the Shiny package and can be run locally or on a server. Radiant was developed by Vincent Nijs. Please use the issue tracker on GitHub to suggest enhancements or report problems: https://github.com/radiant-rstats/radiant.model/issues. For other questions and comments please use radiant@rady.ucsd.edu.

Key features

  • Explore: Quickly and easily summarize, visualize, and analyze your data
  • Cross-platform: It runs in a browser on Windows, Mac, and Linux
  • Reproducible: Recreate results and share work with others as a state-file or an Rmarkdown report
  • Programming: Integrate Radiant's analysis functions with your own R-code
  • Context: Data and examples focus on business applications

Explore

Radiant is interactive. Results update immediately when inputs are changed (i.e., no separate dialog boxes) and/or when a button is pressed (e.g., Estimate in Model > Estimate > Logistic regression (GLM)). This facilitates rapid exploration and understanding of the data.

Cross-platform

Radiant works on Windows, Mac, or Linux. It can run without an Internet connection and no data will leave your computer. You can also run the app as a web application on a server.

Note: For Windows users with data that contain multibyte characters please make sure your data are in ANSI format so R(adiant) can load characters correctly.

Reproducible

To conduct high-quality analysis, simply saving output is not enough. You need the ability to reproduce results for the same data and/or when new data become available. Moreover, others may want to review your analysis and results. Save and load the state of the application to continue your work at a later time or on another computer. Share state-files with others and create reproducible reports using Rmarkdown. See also the section on Saving and loading state below

If you are using Radiant on a server you can even share the URL (include the SSUID) with others so they can see what you are working on. Thanks for this feature go to Joe Cheng.

Programming

Although Radiant's web-interface can handle quite a few data and analysis tasks, you may prefer to write your own R-code. Radiant provides a bridge to programming in R(studio) by exporting the functions used for analysis (i.e., you can conduct your analysis using the Radiant web-interface or by calling Radiant's functions directly from R-code). For more information about programming with Radiant see the programming page on the documentation site.

Context

Radiant focuses on business data and decisions. It offers tools, examples, and documentation relevant for that context, effectively reducing the business analytics learning curve.

How to install Radiant

  • Required: R version 3.3.0 or later
  • Required: A modern browser (e.g., Chrome or Safari). Internet Explorer (version 11 or higher) should work as well
  • Required: Rstudio

If you use Rstudio (version 0.99.893 or later) you can start and update Radiant through the Addins menu at the top of the screen. To install the latest version of Radiant for Windows or Mac, with complete documentation for off-line access, open R(studio) and copy-and-paste the command below:

install.packages("radiant", repos = "https://radiant-rstats.github.io/minicran/", type = "binary")

Once all packages are installed select Radiant from the Addins menu in Rstudio or use the command below to launch the app:

radiant::radiant()

To update Radiant select Update Radiant from the Addins menu in Rstudio or use the command below:

radiant::update_radiant()

Alternatively Radiant can be updated using the command:

source("https://raw.githubusercontent.com/radiant-rstats/minicran/gh-pages/build.R")

See the installing radiant page for details.

Optional: You can also create a launcher on your Desktop to start Radiant by typing radiant::launcher() in the R(studio) console and pressing return. A file called radiant.bat (windows) or radiant.command (mac) will be created that you can double-click to start Radiant in your default browser. The launcher command will also create a file called update_radiant.bat (windows) or update_radiant.command (mac) that you can double-click to update Radiant to the latest release.

When Radiant starts you will see data on diamond prices. To close the application click the icon in the navigation bar and then click Stop. The Radiant process will stop and the browser window will close (Chrome) or gray-out.

Documentation

Documentation and tutorials are available at https://radiant-rstats.github.io/docs/ and in the Radiant web interface (the icons on each page and the icon in the navigation bar).

Want some help getting started? Watch the tutorials on the documentation site.

Reporting issues

Please use the GitHub issue tracker at github.com/radiant-rstats/radiant/issues if you have any problems using Radiant.

Try Radiant online

Not ready to install Radiant on your computer? Try it online at the link below:

https://vnijs.shinyapps.io/radiant

Do not upload sensitive data to this public server. The size of data upload has been restricted to 5MB for security reasons.

Running Radiant on shinyapps.io

To run your own instance of Radiant on shinyapps.io clone the radiant repo and deploy.

Running Radiant on shiny-server

You can also host Radiant using shiny-server. First, install radiant on the server using the command below:

install.packages("radiant", repos = "https://radiant-rstats.github.io/minicran/")

Then clone the radiant repo and point shiny-server to the inst/app/ directory. As a courtesy, please let me know if you intend to use Radiant on a server.

Saving and loading state

To save your analyses save the state of the app to a file by clicking on the icon in the navbar and then on Save state (see also the Data > Manage tab). You can open this state-file at a later time or on another computer to continue where you left off. You can also share the file with others that may want to replicate your analyses. As an example, load the state-file radiant-state.rda through the Data > Manage tab. Go to Data > View and Data > Visualize to see some of the settings. There is also a report in R > Report that was created using the Radiant interface. The html file radiant-state.html contains the output.

A related feature in Radiant is that state is maintained if you accidentally navigate to another page, close (and reopen) the browser, and/or hit refresh. Use Refresh in the menu in the navigation bar to return to a clean/new state.

Loading and saving state also works with Rstudio. If you start Radiant from Rstudio and use > Stop to stop the app, lists called r_data and r_state will be put into Rstudio's global workspace. If you start radiant again using radiant() it will use these lists to restore state. This can be convenient if you want to make changes to a data file in Rstudio and load it back into Radiant. Also, if you load a state-file directly into Rstudio it will be used when you start Radiant to recreate a previous state.

Technical note: Loading state works as follows in Radiant: When an input is initialized in a Shiny app you set a default value in the call to, for example, numericInput. In Radiant, when a state-file has been loaded and an input is initialized it looks to see if there is a value for an input of that name in a list called r_state. If there is, this value is used. The r_state list is created when saving state using reactiveValuesToList(input). An example of a call to numericInput is given below where the state_init function from radiant.R is used to check if a value from r_state can be used.

numericInput("sm_comp_value", "Comparison value:", state_init("sm_comp_value", 0))

Source code

The source code is available on GitHub at https://github.com/radiant-rstats. radiant.data, offers data loading, saving, viewing, visualizing, combining, and transforming tools. radiant.design builds on radiant.data and adds tools for experimental design, sampling, and sample size calculation. radiant.basics covers the basics of statistical analysis (e.g., comparing means and proportions, cross-tabs, correlation, etc.) and includes a probability calculator. radiant.model covers model estimation (e.g., logistic regression and neural networks), model evaluation (e.g., gains chart, profit curve, confusion matrix, etc.), and decision tools (e.g., decision analysis and simulation). Finally, radiant.multivariate includes tools to generate brand maps and conduct cluster, factor, and conjoint analysis.

These tools are used in the Business Analytics, Quantitative Analysis, Research for Marketing Decisions, Consumer behavior, Experiments in firms, Pricing, and Customer Analytics classes at the Rady School of Management (UCSD).

Credits

Radiant would not be possible without R and Shiny. I would like to thank Joe Cheng, Winston Chang, and Yihui Xie for answering questions, providing suggestions, and creating amazing tools for the R community. Other key components used in Radiant are ggplot2, dplyr, tidyr, magrittr, broom, shinyAce, rmarkdown, and DT. For an overview of other packages that Radiant relies on please see the about page.

License

Radiant is licensed under the AGPLv3. The documentation and videos on this site as well as the Radiant help files are licensed under the creative commons attribution, non-commercial, share-alike license CC-NC-SA.

As a summary, the AGPLv3 license requires, attribution, including copyright and license information in copies of the software, stating changes if the code is modified, and disclosure of all source code. Details are in the COPYING file.

If you are interested in using Radiant please email me at radiant@rady.ucsd.edu

© Vincent Nijs (2017)

Copy Link

Version

Install

install.packages('radiant.model')

Monthly Downloads

1,080

Version

0.8.0

License

AGPL-3 | file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Vincent Nijs

Last Published

April 28th, 2017

Functions in radiant.model (0.8.0)

confint_robust

Confidence interval for robust estimators
confusion

Confusion matrix
evalbin

Model evalbin
evalreg

Model evalreg
direct_marketing

Direct marketing data
dtree

Create a decision tree
plot.evalbin

Plot method for the evalbin function
logistic

Logistic regression
minmax

Calculate min and max before standardization
plot.crtree

Plot method for the crtree function
ann

Artificial Neural Networks
auc

Area Under the Curve (AUC)
catalog

Catalog sales for men's and women's apparel
cf

Movie ratings
find_max

Find maxium value of a vector
find_min

Find minimum value of a vector
houseprices

Houseprices
ideal

Ideal data for linear regression
predict.crtree

Predict method for the crtree function
plot.evalreg

Plot method for the evalreg function
plot.nb

Plot method for the nb function
plot.nb.predict

Plot method for nb.predict function
crs

Collaborative Filtering
crtree

Classification and regression trees
dtree_parser

Parse yaml input for dtree to provide (more) useful error messages
dvd

Data on DVD sales
plot.confusion

Plot method for the confusion matrix
plot.crs

Plot method for the crs function
print.crtree.predict

Print method for predict.crtree
plot.logistic

Plot method for the logistic function
plot.model.predict

Plot method for model.predict functions
plot.regress

Plot method for the regress function
plot.repeater

Plot repeated simulation
print.nb.predict

Print method for predict.nb
print.regress.predict

Print method for predict.regress
sim_cleaner

Clean input command string
sim_splitter

Split input command string
radiant.model

radiant.model
regress

Linear regression using OLS
render.DiagrammeR

Method to render DiagrammeR plots
repeater

Repeat simulation
predict.logistic

Predict method for the logistic function
predict_model

Predict method for model functions
print.ann.predict

Print method for predict.ann
store.crs

Store predicted values generated in the crs function
store.model

Store residuals from a model
summary.simulater

Summary method for the simulater function
test_specs

Add interaction terms to list of test variables if needed
nb

Naive Bayes using e1071::naiveBayes
plot.ann

Plot method for the ann function
predict.nb

Predict method for the nb function
predict.regress

Predict method for the regress function
plot.dtree

Plot method for the dtree function
plot.simulater

Plot method for the simulater function
predict.ann

Predict method for the ann function
store_ann

Deprecated function to store predictions from an ANN
store_glm

Deprecated function to store logistic regression residuals and predictions
summary.logistic

Summary method for the logistic function
scaledf

Center or standardize variables in a data frame
sdw

Standard deviation of weighted sum of variables
summary.confusion

Summary method for the confusion matrix
store_reg

Deprecated function to store regression residuals and predictions
summary.ann

Summary method for the ann function
summary.regress

Summary method for the regress function
summary.repeater

Summarize repeated simulation
print.logistic.predict

Print method for logistic.predict
sensitivity

Method to evaluate sensitivity of an analysis
sensitivity.dtree

Evaluate sensitivity of the decision tree
summary.nb

Summary method for the nb function
var_check

Check if main effects for all interaction effects are included in the model If ':' is used to select a range _evar_ is updated
write.coeff

Write coefficient table for linear and logistic regression
print_predict_model

Print method for the model prediction
radiant.model-deprecated

Deprecated function(s) in the radiant.model package
sim_summary

Print simulation summary
simulater

Simulate data for decision analysis
summary.crs

Summary method for Collaborative Filter
summary.evalbin

Summary method for the evalbin function
summary.evalreg

Summary method for the evalreg function
store.model.predict

Store predicted values generated in model functions
store.nb.predict

Store predicted values generated in the nb function
summary.crtree

Summary method for the crtree function
summary.dtree

Summary method for the dtree function