DataAug 01, 2019

4 Considerations When Choosing Between R and Python

Michael Grube

With the rapid proliferation of data in every aspect of our lives, there is a corresponding rise in the tools used to analyze and extract valuable insights from this information. Two of the most popular programming languages used to dissect data are Python and R. For someone venturing into the world of data science for the first time, it can be difficult to distinguish between the two languages.

Choosing between Python and R can be a difficult decision. They both excel at the core functions of data science, making it tough to distinguish the “better” option. If you mapped the capabilities of the two languages on a Venn diagram, it would come very close to looking like a circle. Yet, Python and R have varied popularity in different communities based on the strengths and weaknesses of each programming language’s approach to developing code and sharing results. This blog post outlines four considerations to guide your decision when choosing between Python and R.

1. Project Objective

A student working on a dissertation and an engineer at a private company could perform the same analysis on the same data, but have a different tool of choice, based on how they’d like to disseminate their findings.


Python, when compared to R, is considered a tool of programmers, engineers, and software developers. Due to the ease of deployment of code and integration into a wide gamut of applications, Python provides the tools a data scientist needs to provide accessibility to their results at an enterprise level. Data scientists working in an engineering environment will typically find Python better suited to their organizational goals. If your results need to be scalable, replicable, and maintainable, Python is your best bet to meet all these criteria.


R comes from the world of academics and statisticians, and it still holds a slight edge over Python when it comes to statistical work, while lagging when it comes to usefulness as a software engineering language. Typically, R is the choice of people looking to conduct research, answer a hypothesis using statistical analysis, or visualize insights found in large datasets. A data scientist working in an academic, or similarly localized environment, looking for comprehensive statistical capabilities and detailed visualizations will find R a very useful tool to meet those needs

2. Repository Comparison

Repositories contain the essential packages used by data scientists to perform all the data wrangling and analysis needed to glean insights from a set of information. A new user can find everything they need in a well-maintained repository and avoid lengthy research and package dependency issues.


Python’s default repository is the Python Package Index (PyPI), which has been historically inferior to R’s native repository Comprehensive R Archive Nework (CRAN), though it has closed the gap significantly in recent years. PyPI uses Pip to install packages with a single call, but it isn’t comprehensive or reliable due to inferior versioning support for packages that causes issues based on the dependencies between packages. The Anaconda distribution contains the essential packages for a data scientist using Python, with arguably the best packages for analysis using machine learning. The widespread adoption of Anaconda has made package management significantly easier for data scientists to share and maintain code. Overall, Python lags behind R in terms of its package infrastructure for analysis and visualization of a large dataset, but the gap between the two languages is getting closer as Python’s prominence as a data science tool continues to grow.


R’s CRAN is a centralized repository containing all the key libraries for data science. This is one of R’s best assets, as it is easy to stay up-to-date with libraries with little effort from a user. These libraries often contain years of updates, and while that means there are often dependencies between packages, it’s also why R can provide some of the best visualizations and analytics available today. Having one centralized, well-maintained repository is why R can support many highly specific packages for statistical analysis and gives it an edge over Python when it comes to doing specialized projects.

3. Programming Experience

If you’re a coding wiz, feel free to skip this section. If you think learning a programming language could be a serious challenge to your productivity, consider the following.


Python was built with a focus on productivity and code readability, making it intuitive for new developers to get started quickly. Python is a popular recommendation for people new to programming to use to learn concepts that are transferrable to other programming languages.


R has a much steeper learning curve for someone new to programming. An experienced developer will likely not struggle to learn R, but for someone unfamiliar with programming architecture and jargon, it can be overwhelming. The investment has a high payoff though, as R can perform powerful statistical operations in just a few lines of code.

4. Organizational Preference

If the work you’re doing is for a company or organization that already prefers R or Python, that language should be considered first. It is easier for an organization to use, understand, and maintain work done in a language already in use. Assess the capabilities of each language and the scope of the project, and unless there is a significant reason to choose one language over the one currently in use, keep it standardized. Organizational standards make it easy to involve multiple parties in a company and minimizes rework when updates are required.

make the call

With the extensive capabilities of both Python and R, in most cases, you can accomplish the same analysis using either tool. Although both languages see use across all realms of data science, Python is more common in an engineering environment, whereas R dominates the academic sphere. When starting a project with R or Python, the decision is dependent on the end goals and timeline of the project, skillset of the developer, and preference of the organization more so than the capabilities of the languages of themselves.

Each language has its own unique value and should be part of a seasoned data scientist’s toolbelt. But, if you must choose, take stock of these four considerations before deciding. By assessing the preferences of your own interests or the skills needed for a role you’d like to pursue, you’ll begin building out the skillset needed to utilize the multitude of data available today. Use these factors to make the call between R and Python and you’ll save time, money, and headaches down the road.

need help getting started?

I hope this guide helped you decide whether Python or R is right for your next data science project. If you’re still having trouble choosing between the two, reach out to us at