Python vs. R for Data Science

Sheila Doshi2016-12-01 | 9 min read

Return to blog home

R and Python are both popular open source programming languages for data scientists. Each has its advantages for performing data science tasks. So, which one should you use? In this video, Eduardo Ariño de la Rubia, makes a case for each of them as the "best" language for data scientists.

What is Python?

Python is an open-source, interpreted, and object-oriented programming language designed for high productivity and easy readability. Python was released in 1989 by Guido van Rossum as the successor to the ABC programming language. Python's growth in popularity among the data science community comes from the ease of implementation, a vast open source community, and a quick-to-grasp syntax.

Popular Python Libraries for Data Science

Python has a robust collection of open source libraries designed by the community to address problems big and small faced by data science practitioners around the world. Below are some of the most popular Python libraries leveraged by data scientists for reoccurring tasks.

  • NumPy: Originally released as Numeric in 1995, the rerelease of NumPy in 2006 allows for programmers to quickly write programs for scientific computing and to easily work in the fields of linear algebra, matrices, and Fourier transform.
  • Pandas: Pandas is a powerful and easy-to-use data analysis library that gives users the ability to manipulate tabular data.
  • Scikit-Learn: Scikit-Learn is a library designed for machine learning tasks including classification, regression, and clustering data.
  • TensorFlow: Developed by Google, TensorFlow has become a pivotal library for the development of machine learning-based algorithms and easy, simplified model building.
  • Pytorch: Like Tensorflow, Pytorch is a machine learning library that is used for applications such as NLP (natural language processing), image recognition, artificial intelligence, and deep learning. Pytorch was developed by Facebook's AI Research Lab.

Take Your Python to the Next Level

After you build up your comfortability with Python and learn the fundamentals, you can dive into some of the advanced techniques that come with the language. Below we have listed some data science projects that we designed which utilize Python.

  • Natural Language Processing: Develop a Named Entity Recognition Model to classify people, places, and organizations from large datasets using Scikit-Learn and Keras.
  • Network Analysis: How to conduct an analysis of network data found in social media data using the networkx library.
  • Data Visualization Development: Learn how to develop interactive charts and visuals using Plotly and Domino.

What is R?

R is a free, open-source project designed for statistical computing and data visualization. R was created as an implementation of the programming language S, with Scheme-inspired semantics merged into the language. Ross Ihaka and Robert Gentleman were the first to develop this alternative approach to S and formally opened sourced this alternative approach as R in 1993. Rooted in the academic world like many other languages, R has found its way to many organizations and industries as its preferred language for data science.

Popular R Packages for Data Science

R contains an impressive collection of open source packages well suited for any practicing data science professional. With an evergrowing list of new packages being released every day, new and experienced data scientists often turn to some of these popular packages for their day-to-day work.

  • Dplyr: One of the most widely recognized R packages in the field of data analysis and machine learning. As a part of the tidyverse ecosystem, Dpylr is used for data manipulation through a series of functions such as mutate(), select(), filter(), and summarise().
  • ggplot2: ggplot2, another package that is part of the tidyverse ecosystem, is based on the "Grammar of Graphics" and was designed to provide a means of data visualization within R.
  • plyr: Similar to Dplyr, plyr allows for additional means of data manipulation through prewritten functions for splitting, applying, and combining data.
  • stringr: A straightforward package for string manipulation in R.
  • Shiny / RMarkdown: Two packages both designed with the same purpose, to generate applications for reporting/communicating data science findings.
  • modelr: modelr provides functions for creating efficient pipelines for model development.

Take Your R to the Next Level

Want to see what advanced techniques you can apply to data science tasks with R? We have curated a list of projects we have designed that utilize R for the analysis below.

  • Clustering Techniques: See how you can build clustering algorithms in R using useful and cluster package.
  • Ecological Research in R: Auriel Fournier, Ph.D. walks through techniques to clean, analyze and visualize regional datasets with R
  • MLOps with R: Learn about prototyping ML pipelines & reporting using a real-world dataset.

What's the Difference Between R & Python?

Both R and Python are tools utilized to accomplish data science tasks. So, what makes them different? Mainly, each language's approaches to data science itself. While they share similar features, being open-sourced, continually supported, and ever-growing languages, they are fundamentally different in their foundations. Python is a general-purpose language and therefore has a more generalized approach to data science tasks. R, on the other hand, was predominately designed for statistical analysis and will handle data science tasks from that angle.

Because of these distinctions, each language has found its niche within the data science community. A wide array of professionals & industries use Python for instances that require a more general approach. R, because of its statistical analysis foundation, has found its popularity around more focused industries such as healthcare, bioinformatics, pharmaceutical, finance, and academia.

Advantages and Disadvantages of Python

In Favor of Python

  • Python is, by design, a general-purpose programming language. The easy syntax increases the speed at which you can write a program.
  • A low barrier to entry with a simple ease-of-access to testing ideas immediately with little friction.
  • Multipurpose applications for a language. Python is not limited to just data science tasks. Other applications such as website development, GUIs, data visualizations/dashboards, and more are built using Python. The sky is the limit!

Against Python

  • The general-purpose nature of Python can also be seen as a disadvantage. Because it was not designed for a specific use case, it can often be overpowered by other languages like R that are more focused on its approach.

Advantages and Disadvantages of R

In Favor of R

  • R is a language whose target audience is statisticians and those focused on numerical data exclusively. The niche specialization of R gives it a competitive edge over Python for numerical-based data science tasks.
  • R contains the most powerful framework for statistical computing, in terms of community and support.
  • R has a rich community and ecosystem of packages across specific industries and verticals designed to address common data science tasks within those fields. You can see the list of available packages at Rdocumentation.

Against R

  • A steep learning curve due to syntax and processes, which often deters data analysts/data scientists from first looking to explore the language.
  • R can run slowly due to poorly written code. However, there are native solutions within R that can quickly speed up your programs.

In Conclusion

So, who wins the R vs. Python battle? The answer is...both! Each language offers unique abilities to tackle challenges faced by data scientists. Some practitioners start a project in one language and soon switch to the other. Others will only rely on one language and completely avoid the other. If you are looking to advance your data science skillsets, you may find dabbling with both R and Python might be the best approach and will give you the necessary context to pick and choose which situation calls for which language.