R is a statistical-computing environment that consists of a language along with a run-time environment with graphics, a debugger, access to certain system functions and the ability to run programs stored in script files. Implementation of R is heavily influenced by two programming languages: S and Scheme. R has inherited strong object-oriented features from S language. The underlying implementation and semantics of the software is inspired from Scheme.
R provides a wide range of statistical techniques such as linear and non-linear modelling, classical statistical tests, time-series analysis, classification clustering and more. Communication engineers make use of R for various signal-processing techniques such as filter design and processing of electrocardiogram (ECG) signals.
The software was initially created by Ross Ihaka and Robert Gentleman at University of Auckland, New Zealand, in 1993, and is currently being developed by R Development Core Team.
Why I should go for R
With a lot of software packages available for data analysis and statistical computing, one might question the relevance of yet another package for carrying out the same.
Benefits of R being a language. R is not an easy-to-learn language by itself. But definitely it has a lot of advantages over other data-analysis tools, if you could master it. R, being a highly-interactive language, allows the programmer to experiment and explore new areas and new functionalities. This would not be even possible if the data-analysis tool was not a language. The script can be re-run any time, on any machine.
Cutting-edge analytics. A powerful analytics software should be capable of accepting data in various formats, manipulating and converting it to traditional and modern statistical models. R does all of these. Various manipulations like transforms, merge, aggregations and so on are carried out on accepted data and statistical models like regression and tree model are prepared. These techniques allow academicians and researchers around the world to develop latest methods in statistics, machine learning and predictive modelling. There are thousands of packages in every domain that extend the capabilities of R to adapt to various applications and their number increases day by day.
Faster yet reliable results. With the ability to mix and match models to yield better results, a normal R programmer can yield faster, yet accurate, results. The code can be automated and thus be reproduced, nourishing greater research.
Challenges faced while coding in R
Engineers who are new to R face certain challenges when they are introduced to R for the first time.
Mastering the language. R is not an easy-to-learn language. The documentation style could have been more user-friendly so that the language would have more user base.
Memory and speed issues. R software is designed to be more generic in nature and programmers code it to suite their applications. Till date there are over 2000 applications developed extending the functionalities of R. Obviously, R is not the best for certain applications. There are memory and speed issues when extending the code for certain applications.
Syntax of the program. For a professional programmer, syntax of the script might look somewhat untidy when compared to other languages like Python.
How a communication engineer can make use of R
As discussed earlier, R is designed to be a generic tool and not an electronic design automation tool. With the help of functions ported from other open source packages, R handles signal-processing tasks pretty decently. These could be filter design or ECG signal analysis; researchers across the globe make efficient use of this tool for their applications.
As a signal-processing tool. “Bulk of R’s basic signal-processing capability comes from the signal package that was ported over from the open source project Octave,” points out Joseph Rickert in his blog titled ‘R and Signal Processing.’ The so-ported signal package can be used to perform signal-processing functionalities including filtering, filter generation, resampling, interpolation and visualisation of filter models. These models are quite similar to the ones in MATLAB and hence anyone who has mastered the latter can easily switch over to this open source alternative.