In the early stages of any new dashboard project, one crucial decision is which software to use to build the solution. In this post, we compare two of our favoured software solutions at the moment, R Shiny and Microsoft Power BI. Which one we choose depends on a variety of factors, including:
the format of the client’s data
how reactive the dashboard must be to user inputs
the devices that the dashboard will be used on
whether the user requires offline capabilities, and
Probably the less well-known of the two, Shiny is an installable package for the statistical programming language R that allows the user to create interactive web apps. These apps contain all the functionality and computational power of R and can be hosted either in the cloud or on a physical server. Using HTML and CSS, the apps can be fully customised to create completely bespoke dashboards. Furthermore, this customisability means that we can design dashboards to fit on any device that a client may wish.
Using its vast library of packages, R can handle data from a wide array of sources, from spreadsheets to databases. Similarly, the range of analysis techniques that can be performed in R is almost endless, ranging from simple regressions to cluster analysis and forecasting.
Despite all this, Shiny’s greatest feature is, in my opinion, its reactivity. The user can input values and change underlying assumptions using a variety of widgets including filters, sliders and text boxes. The dashboard then completely refreshes within seconds. This allows the end user to truly interact with their data in a way that other solutions do not.
As with any software, R Shiny does have some drawbacks. For those starting out, there can be quite a steep learning curve, both in terms of the R language and web design using HTML and CSS. For those less confident in their design abilities, the Shiny package does include a range of pre-set layouts that still contain all the functionality of a fully-customised dashboard.
Another point worth noting is that if a Shiny dashboard is stored on the cloud as a web app, the user must have Internet access to access it.
In terms of cost, R Shiny has a range of options depending on the user’s needs. For those who simply need a small dashboard with few users, the free tier might suffice. However, for complex dashboards with more users, more active hours and advanced features such as user authentication and custom domains, prices range from $9 to $299 per month.
Microsoft’s contribution to the world of business intelligence software, Power BI is based on Excel and its add-ins PowerPivot and PowerQuery. It provides a self-service environment where users can create and share reports and dashboards. Power BI is designed to make data analysis as quick and easy as possible. It combines connectivity to numerous data sources with a simple interface that makes dashboard creation fast and accessible. This simplicity can, however, make customisation more difficult.
On the data front, Power BI offers all the connectivity included with R Shiny and more. For example, it is possible to connect directly with sources such as Google Analytics, Facebook and Salesforce. Microsoft releases updates monthly, which often include new data sources, along with other new features such as graphs and visuals.
Loading data into Power BI might be simple enough, but analysing it can be somewhat more limited. It is very easy to perform simple manipulations using the in-built functions, but while more complex analysis is possible through PowerQuery, the possibilities are not as endless as they are with R. Fortunately, Power BI does have the functionality to run snippets of R code if needed.
As a Microsoft program, Power BI users can also enjoy the benefits of a large online community. This includes an active forum and a dedicated site to request and vote on potential new features. There are also dedicated mobile apps, making designing dashboards for smaller screens much simpler and allowing for offline access.
However, while Power BI is a useful reporting tool, if user interaction is important then it may not be the optimal solution. Interactivity is limited to rather basic filters and slicers in the online version. Offline, these are not available at all. Also, it is not possible to run on-the-fly recalculations in Power BI, meaning it cannot be used for scenario modelling in the same way R Shiny can.
Power BI’s core pricing model is on a per-user basis. Every user who will need to create, edit or view a report will need their own account. This comes at a cost of £7.50 per month per user. It might not seem a lot, but for larger dashboards with more users it could quickly add up. There is a free desktop version for those who just want to try out the software, but you won't be able to share your work with other users.
So which is best for me?
At the end of the day, if it’s a simpler dashboard that won’t change too much over time and doesn’t require the user to input or recalculate anything then Power BI is a perfectly good solution. It is useful for those who want specific analytics without delving too far into their data. The fact that Power BI is a Microsoft product can also mean clients have more confidence in it.
However, if the client needs more flexibility and the ability to analyse data in-depth then we would most likely recommend R Shiny. In terms of functionality, it really is unrivalled. The fact that dashboards and visualisations can be completely customised is also a key feature.
To see some examples of dashboards built in both R Shiny and Power BI, check out these links:
by Dominic Nelson
(last updated 22 May 2018)
- Dec 14, 2018 8 insights from the SDR 2017-18 Dashboard Dec 14, 2018
- Nov 23, 2018 What is a Dashboard? Nov 23, 2018
- Aug 31, 2018 Plotly in R: How to make ggplot2 charts interactive with ggplotly Aug 31, 2018
- Aug 16, 2018 Making the most of box plots Aug 16, 2018
- Jul 24, 2018 Plotly in R: How to order a Plotly bar chart Jul 24, 2018
- Apr 11, 2018 Machine learning in the housing sector Apr 11, 2018
- Mar 5, 2018 How Useful Are Traffic Light Scorecards for Performance Management? Mar 5, 2018
- Feb 16, 2018 How to merge multiple data frames using base R Feb 16, 2018
- Feb 8, 2018 The beginner's guide to time series forecasting Feb 8, 2018
- Jan 24, 2018 R Shiny vs. Power BI Jan 24, 2018
- Aug 15, 2016 Fundamentals of a good performance framework Aug 15, 2016