This makes it seem a bit disjointed, in a way that other languages don’t.
The R community should have anointed one object system and made tidyverse a core part of R.
All that said, R is fantastic and the depth of libraries is extensive. Libs are often written by the original researchers that develop the method. At some academic institutions an R package is counted as a paper.
> and made tidyverse a core part of R.
Not a tidyverse fan. It doesn't scale well.
Learn data.table, which has a much more R-like interface and is fast fast fast even for large data sizes. More powerful and more expressive than pandas, and again, faster
See https://cran.r-project.org/web/packages/data.table/vignettes...
It's hard to generalise for all data scientists everywhere, but that is not my experience.
Data transformation (80% of the job) is very functional and so objects systems don't matter much.
But when you are training neural nets in Python you are probably using a framework of some type. Torch in R looks very object orientation'y .
The issue is not that object orientation is fundamentally needed for data science, but when you install a random object orientated R library you get a random R object system or pseudo-object system that needs to be reasoned about.
It is a pity R didn't just ditch object systems or adopt a limited simple system like Lua's table approach.
For instance in my own case, my first use of Python was outside of mainstream scientific computing. I needed something to install on lab computers, for data acquisition and automation. And it needed to be free because my employer was under a spending freeze after the 2008 financial meltdown. Oh, and I also wanted something for hobby projects, that would be equally at home on Windows or Linux.
So I think the quality of the language came first.
It has some really great statistical and data science packages that were well ahead of the competition 10-15 years ago. The web frameworks were good enough for dashboards and what most people were using R for.
But if you wanted to write fast and elegant nom-vectorized code, R is really lacking. I left it for Julia for that reason.
I'm not a fan of pandas, so I'd say Julia and R beat python at basic dataframe manipulation. Nothing beats kdb+/q at dataframes though imo.
None of this was forced by R the language, it was purely a library design thing by the folks writing the libraries. Whereas in contrast, you simply wouldn't and didn't get such library design in mainstream general purpose programming languages (e.g. in C++, java some of this stuff wouldn't even type check) and similarly in python, even though python being dynamic was fertile ground for people to develop completely bonkers and unautomatable numeric and scientific libraries, the customs for how libraries should work were different
This is maybe just a reflection that R and R's libraries were being designed for interactive use by humans doing exploratory data analysis, model fitting etc, unlike other programming languages which are used to automate things or build software products that can be shipped.