Learn R Programming

⚠️There's a newer version (1.6.3) 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.data/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

Playlists

There are two youtube playlists with video tutorials. The first provides a general introduction to key features in Radiant. The second covers topics relevant in a course on business analytics (i.e., Probability, Decision Analysis, Hypothesis Testing, Linear Regression, and Simulation).

  • Introduction to Radiant
  • Radiant Tutorial Series

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.

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 4.0.0 or later
  • Required: Rstudio

In Rstudio 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:

options(repos = c(RSM = "https://radiant-rstats.github.io/minicran", CRAN = "https://cloud.r-project.org"))
install.packages("radiant")

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

radiant::radiant()

To launch Radiant in Rstudio's viewer pane use the command below:

radiant::radiant_viewer()

To launch Radiant in an Rstudio Window use the command below:

radiant::radiant_window()

To easily update Radiant and the required packages, install the radiant.update package using:

options(repos = c(RSM = "https://radiant-rstats.github.io/minicran", CRAN = "https://cloud.r-project.org"))
install.packages("remotes")
remotes::install_github("radiant-rstats/radiant.update", upgrade = "never")

Then select Update radiant from the Addins menu in Rstudio or use the command below:

radiant.update::radiant.update()

See the installing radiant page additional 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).

Individual Radiant packages also each have their own pkgdown sites:

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 10MB for security reasons.

Running Radiant on shinyapps.io

To run your own instance of Radiant on shinyapps.io first install Radiant and its dependencies. Then clone the radiant repo and ensure you have the latest version of the Radiant packages installed by running radiant/inst/app/for.shinyapps.io.R. Finally, open radiant/inst/app/ui.R and deploy the application.

Running Radiant on shiny-server

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

options(repos = c(RSM = "https://radiant-rstats.github.io/minicran", CRAN = "https://cloud.r-project.org"))
install.packages("radiant")

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.

When running Radiant on a server, by default, file uploads are limited to 10MB and R-code in Report > Rmd and Report > R will not be evaluated for security reasons. If you have sudo access to the server and have appropriate security in place you can change these settings by adding the following lines to .Rprofile for the shiny user on the server.

options(radiant.maxRequestSize = -1)  ## no file size limit
options(radiant.report = TRUE)

Running Radiant in the cloud (e.g., AWS)

To run radiant in the cloud you can use the customized Docker container. See https://github.com/radiant-rstats/docker for details

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 radiant state file (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-example.state.rda by clicking on the icon in the navbar and then on Load radiant state file. Go to Data > View and Data > Visualize to see some of the settings from the previous "state" of the app. There is also a report in Report > Rmd that was created using the Radiant interface. The html file radiant-example.nb.html contains the output.

A related feature in Radiant is that state is maintained if you accidentally navigate to another web 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, r_info, and r_state will be put into Rstudio's global workspace. If you start radiant again using radiant::radiant() it will use these lists to restore state. 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 for the radiant application is available on GitHub at https://github.com/radiant-rstats. radiant.data, offers tools to load, save, view, visualize, summarize, combine, and transform data. 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, Applied Market Research, Consumer Behavior, Experiments in Firms, Pricing, Pricing Analytics, 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, shinyFiles, 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. 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.

The documentation, images, and videos for the radiant.data package are licensed under the creative commons attribution and share-alike license CC-BY-SA. All other documentation and videos on this site, as well as the help files for radiant.design, radiant.basics, radiant.model, and radiant.multivariate, are licensed under the creative commons attribution, non-commercial, share-alike license CC-NC-SA.

If you are interested in using any of the radiant packages please email me at radiant@rady.ucsd.edu

© Vincent Nijs (2023)

Copy Link

Version

Install

install.packages('radiant.data')

Monthly Downloads

2,232

Version

1.6.2

License

AGPL-3 | file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

October 16th, 2023

Functions in radiant.data (1.6.2)

as_hm

Convert input in hour-minute format to time
as_mdy

Convert input in month-day-year format to date
find_home

Find user directory
find_project

Find the Rstudio project folder
copy_from

Source for package functions
describe

Show dataset description
copy_attr

Copy attributes from one object to another
diamonds

Diamond prices
copy_all

Source all package functions
dtab.data.frame

Create an interactive table to view, search, sort, and filter data
as_mdy_hms

Convert input in month-day-year-hour-minute-second format to date-time
format_df

Format a data.frame with a specified number of decimal places
flip

Flip the DT table to put Function, Variable, or Group by on top
dtab.explore

Make an interactive table of summary statistics
format_nr

Format a number with a specified number of decimal places, thousand sep, and a symbol
as_mdy_hm

Convert input in month-day-year-hour-minute format to date-time
ci_label

Labels for confidence intervals
as_hms

Convert input in hour-minute-second format to time
ggplotly

Work around to avoid (harmless) messages from ggplotly
install_webshot

Install webshot and phantomjs
choose_dir

Choose a directory interactively
indexr

Find index corrected for missing values and filters
center

Center
cv

Coefficient of variation
avengers

Avengers
inverse

Calculate inverse of a variable
modal

Calculate the mode (modal value) and return a label
is_not

Convenience function for is.null or is.na
is_string

Is input a string?
month

Add ordered argument to lubridate::month
ci_perc

Values at confidence levels
radiant.data_url

Start radiant.data app but do not open a browser
launch

Launch radiant apps
iterms

Create a vector of interaction terms for linear and logistic regression
radiant.data

radiant.data
get_class

Get variable class
deregister

Deregister a data.frame or list in Radiant
qterms

Create a vector of quadratic and cubed terms for use in linear and logistic regression
radiant.data-deprecated

Deprecated function(s) in the radiant.data package
dtab.pivotr

Make an interactive pivot table
empty_level

Convert categorical variables to factors and deal with empty/missing values
find_gdrive

Find Google Drive folder
fix_names

Ensure column names are valid
get_data

Select variables and filter data
fix_smart

Replace smart quotes etc.
find_dropbox

Find Dropbox folder
load_clip

Load data through clipboard on Windows or macOS
get_summary

Create data.frame summary
make_train

Generate a variable used to selected a training sample
make_vec

Convert a string of numbers into a vector
make_arrange_cmd

Generate arrange commands from user input
summary.explore

Summary method for the explore function
summary.pivotr

Summary method for pivotr
search_data

Search for a pattern in all columns of a data.frame
store.explore

Deprecated: Store method for the explore function
store

Method to store variables in a dataset in Radiant
read_files

Generate code to read a file
seprop

Standard error for proportion
reexports

Objects exported from other packages
n_obs

Number of observations
titanic

Survival data for the Titanic
varpop

Variance for the population
sdprop

Standard deviation for proportion
refactor

Remove/reorder levels
se

Standard error
normalize

Normalize a variable x by a variable y
register

Register a data.frame or list in Radiant
to_fct

Convert characters to factors
me

Margin of error
superheroes

Super heroes
table2data

Create data.frame from a table
varprop

Variance for proportion
standardize

Standardize
meprop

Margin of error for proportion
sig_stars

Add stars based on p.values
sshhr

Hide warnings and messages and return result
radiant.data_viewer

Launch the radiant.data app in the Rstudio viewer
radiant.data_window

Launch the radiant.data app in an Rstudio window
plot.pivotr

Plot method for the pivotr function
slice_data

Slice data with user-specified expression
prop

Calculate proportion
parse_path

Parse file path into useful components
view_data

View data in a shiny-app
dtab

Method to create datatables
explore

Explore and summarize data
does_vary

Does a vector have non-zero variability?
choose_files

Choose files interactively
visualize

write_parquet

Workaround to store description file together with a parquet data file
filter_data

Filter data with user-specified expression
xtile

Split a numeric variable into a number of bins and return a vector of bin numbers
p01

Calculate percentiles
publishers

Comic publishers
round_df

Round doubles in a data.frame to a specified number of decimal places
store.pivotr

Deprecated: Store method for the pivotr function
render.plotly

Method to render plotly plots
sdpop

Standard deviation for the population
subplot

Work around to avoid (harmless) messages from subplot
qscatter

Create a qscatter plot similar to Stata
save_clip

Save data to clipboard on Windows or macOS
ln

Natural log
level_list

Generate list of levels and unique values
mutate_ext

Add transformed variables to a data frame with the option to include a custom variable name extension
is_double

Is input a double (and not a date type)?
is.empty

Is a variable empty
pfun

Summarize a set of numeric vectors per row
pivotr

Create a pivot table
render.datatables

Method to render DT tables
set_attr

Alias used to add an attribute
n_missing

Number of missing values
render

Base method used to render htmlwidgets
show_duplicated

Show all rows with duplicated values (not just the first or last)
which.pmin

Index of the minimum per row
wday

Add ordered argument to lubridate::wday
square

Calculate square of a variable
weighted.sd

Weighted standard deviation
which.pmax

Index of the maximum per row
sshh

Hide warnings and messages and return invisible
as_duration

Wrapper for lubridate's as.duration function. Result converted to numeric
as_dmy_hm

Convert input in day-month-year-hour-minute format to date-time
as_factor

Wrapper for factor with ordered = FALSE
as_dmy

Convert input in day-month-year format to date
arrange_data

Arrange data with user-specified expression
as_dmy_hms

Convert input in day-month-year-hour-minute-second format to date-time
add_class

Convenience function to add a class
as_character

Wrapper for as.character
as_distance

add_description

Convenience function to add a markdown description to a data.frame
as_ymd

Convert input in year-month-day format to date
as_numeric

Convert variable to numeric avoiding potential issues with factors
as_integer

Convert variable to integer avoiding potential issues with factors
combine_data

Combine datasets using dplyr's bind and join functions
as_ymd_hm

Convert input in year-month-day-hour-minute format to date-time
as_ymd_hms

Convert input in year-month-day-hour-minute-second format to date-time