« A Note on Tweedie | Main | Because it's Friday: Behold, the bookbook »

October 10, 2014


Feed You can follow this conversation by subscribing to the comment feed for this post.

That is strange, because I think that #2 and #7 are the weakest points: Excel-users have Visual Basic fpr Applications at their hands which can be used to automate and reproduce analyses.
Given, that excel users rarely use VBA, does not mean it is fair to compare an R user who is willing to learn the language to an Excel user who's not willing to learn the associated computer language.

Being passionate about R myself I do see a lot of advantages of R over Excel for many uses. However VBA must not be omitted if Excel as a tool is judged.


While you can use VBA to produce charts it is not an easy process. The R graphics programming is much easier than VBA graphics programming (I have done both).
As for Reproducibility most excel users are not using VBA to script their process. Importing data, creating pivot tables and producing charts is almost always done by clicking. R users start with scripts while excel users start by clicking. Going from clicking to VBA is a difficult process.

Second Ken on this.

VBA is strong in an MS objects framework. Technically, you can extend this to do other things, but I find it very cumbersome to work with. It's a bit verbose. The IDE is hidden. It doesn't scale very well. I wouldn't want to use it in a centralized fashion as Excel spreadsheets get passed around and modified like nothing else (while you can build a client on top of Excel, it's not a common practice and there are a lot of programs that are better at handling this issue). I also don't like using it with databases, plenty of tools that are better for that as well. Add to it scaling issues.

Even from a language perspective, it just takes a long time to do things that R can do better. Reshape data, 1 line in R, several macroformulae in Excel or large lines in VBA (yes, you can build a framework, but version control etc). Scale that to 1 million rows and you have to start using things like databases to store the data or have to deal with really bad processing times. VBA, charts rely a lot on Excel objects or browser, again browser doesn't support new Javascript stuff (I had to butcher it to get it to run some D3.js examples) and variety is not there. You have ggplot2 style graphics and syntax in R, which are nice and access to a lot of cool charting engines. With the user community, you can expect more to come, that can't be said with VBA.

VBA is very niche language, you don't see it in Web Dev, you don't see it in large scale data processing, you don't see it in a lot of things. Sure, it's great for it's niche, but then I'd say, given a choice between VBA and R, I'd recommend R for beginners. Just has more going for it and more importantly, it's a hot topic with lots of smart people driving new developments in ... stats, graphics...

For me, I even prefer Python, R or doing the analysis in a database (switched from VBA/Excel Developer to Database Developer over time) over pure VBA. VBA I use for integration with Excel or provide some applications for those that really like living and breathing Excel, but... I find the other languages better overall and more interesting to work with.

I think strong point for Excel: prototyping, quick analysis of small datasets, building small scale models/modifying them quickly, small scale data quality, getting a taste of a data source (quick/dirty look) and minor applications (maybe bringing in web portal or two). Also, users tend to know it and so it's easy to do minor things in it (minor manipulations as well). I see VBA as more value add on top of Excel.

For distribution, I still go with BI platforms as web framework on top of a central database is more consistent and accessible via internet from most places. More importantly has the potential for mobile/Ipad consumption.

The comments to this entry are closed.

Search Revolutions Blog

Got comments or suggestions for the blog editor?
Email David Smith.
Follow revodavid on Twitter Follow David on Twitter: @revodavid
Get this blog via email with Blogtrottr