top of page

R vs Python: Which is best for Data Science?

The world is estimated to generate 463 exabytes of data daily by 2025. As technology advances and global data increases exponentially, the demand for data scientists and data analysts trained in utilising these data resources explodes across all industries!

Data science is an extremely exciting field to work in. It combines advanced statistical, quantitative and Artificial Intelligence (AI) skills to drive data-driven business decisions and increase efficiency. Being proficient in a programming language for data analysis is also essential for jobs of the future.

The two most popular programming tools for data science right now are R and Python. They are arguably some of the most flexible programming languages, with R being used specifically for statistical analysis and Python originally used for general-purpose programming work with data science tools added later. They are absolutely essential for anyone that will work with large datasets, machine learning and data visualisation. Now let us get into the pros and cons of each language to find out which is the best for data science!


R is probably one of the most widely used languages for statistical computing and graphical visualisation. It provides a wide variety of statistical and graphical techniques such as time series, clustering, classification, and linear and non-linear modelling. In other words, the key difference between R and the other programming languages for statistical analysis is the fantastic analytical and visualisation tools in R that make it easy to present findings.


Python was originally created as an object-oriented programming language with a focus on code readability and efficiency. Years ago, Python did not have many data analysis and machine learning libraries. As it gained popularity, it expanded rapidly and now provides a great API for machine learning and AI. Compared to R, Python makes replicability and accessibility a lot easier.

Learning Curve


The difficulty of learning usually depends on the individual, but can be estimated. According to an online poll from Visualising Data, out of about 2000 votes, 59% consider R to be more accessible to beginners without any programming background.

In other words, it may be easier to learn R if you do not have prior coding experience. This is because of the simplicity of creating statistical models, high functionality, and ease of coding within R. It is very easy to use complex functions in R compared to Python. All kinds of techniques in statistical tests and modellings are easily accessible and are readily deployed.


Generally, Python is more suitable for people with a background in software engineering as it is a production-ready language. This means that Python can be used for all kinds of purposes and can act as a tool that integrates all systems in your workflow. Thanks to simple syntax, coding and debugging are a lot easier to execute and understand. Python is also extremely flexible for developing and creating something that has never been done before - in Python, the only limit is your creativity. As Python originally focused on readability and simplicity, it is relatively easy to pick up Python for general programming.



You can import data easily from Excel, CSV or any other text files in R. With modern packages, R can collect and handle data from different sources. For example, you can perform basic web scraping with the Rvest package and then use splitstackshape for data wrangling, i.e. to clean up and separate the information into its own new data frame row.

In terms of data modelling, you will find yourself using tons of packages outside of R’s core functionality to do specific modelling analysis. After which, you get to explore the wonders that R can do in terms of visualisation using packages such as ggplot2.

As it is built to do statistical analysis and data visualisation, you can use R to make different types of basic charts and plots from the data matrix, then further customise them with many packages that were created for the graphical display of results. This may just be the most powerful point that R has against Python.


As a general-purpose programming language, you can do all sorts of things with Python. For example, you can use Python to integrate data analytics tasks with web browsers or apps without relying on other software. Indeed, it is a fantastic tool that implements algorithms for production use as a fully-fledged programming language. Unlike R, you will need to use Pandas, the data library for Python, to unpack the insights from data. It is organised into sets of data frames, which can then be repeatedly defined and/or redefined throughout a project.

You can even clean the data by replacing non-valid values with appropriate values for numerical analysis like the figure above. With that, you can easily look through and filter the data.

Python is capable of performing data modelling easily with its powerful libraries that provide a simple and intuitive interface for its users. Such libraries include Numpy for numerical modelling analysis, SciPY for complex calculation and computing, as well as scikit-learn for machine learning.

Python also has tons of options for data visualisation, such as Matplotlib and Seaborn. However, customising graphics is much easier and more intuitive in R with ggplot2 than with Python, even with the solutions that Matplotlib and Seaborn are offering.


Python is a simple and powerful, yet highly-versatile programming language that programmers can use for all kinds of tasks in computer science. Picking up Python can certainly help you to develop a versatile skill set in data science and the simplicity of the language can be picked up easily for the non-programmer.

However, if you are pursuing a career in data science, fluency in R is extremely crucial as the language is specifically designed for data analytics. R is also very popular in the data science community, which means you can have access to and seek help when needed.

In conclusion, to become a competent data scientist, you will need to learn both languages and utilise their strengths in order to become versatile and flexible, which are highly sought after traits in the data science community. Learn to identify the strengths that complement the two languages and use them to your advantage.


Written by: Jacob Chong (Gen Infiniti Academy)

bottom of page