That said, R had come a long way in recent years and is enjoyable to use. It is very complete as far as statistics go.
That said, R had come a long way in recent years and is enjoyable to use. It is very complete as far as statistics go.
IME, for production Python rules and for data exploration, graphics, stats and adhoc analysis R rules.
If you like to write lots of code, Python might be better. But if you use it in clinical research, R has probably better packages for whatever you need.
Python gets scrutiny but most packages are on github and feedback can be received. Although, you should read the source code regardless.
EDIT: And I re-emphasize -- never trust the source code, even if the company you work with indemnifies. One commercial product we used in particular had an insidious bug in one of the new time series packages that got corrected with in later versions, but we never would have found it if model testing requirements didn't also require implementing in R or Python. Since the package didn't exist for Python, and we wrote it ourselves, we found the performance issues.
In R you more packages that do what you expect (mathematically) but the implementation is inelegant and slow. Written by someone who knows exactly what they need and what the package should do, but has difficulty of writing it down.
In python you many well implemented neat packages where the code is well implemented and performs well, but is not exactly doing what user need or skips important features because they are conceptually difficult.
I disagree with this point explicitly. Many packages are not only poorly written programmatically and systemically, they also produce bad results in common cases and fail silently. This has been discussed well before on our very own YCombinator.
https://news.ycombinator.com/item?id=17308554
> is not exactly doing what user need or skips important features because they are conceptually difficult.
This is why classes are cool. You can extend them, modify them, and so on. Perhaps we should teach this more to fellow data scientists.
You may be unaware, but there are vast similarities between the object system of R and Python, mostly due to their common inheritance from the Art of the Metaobject protocol. They look very different (generic functions vs classes), but they are equally extensible.
The trouble with R's systems is that there's three of them, and people use whichever works without really understanding any of them, but all the tools are there.
You said, in the context of ensuring conceptually difficult parts of a model/method were implemented:
> This is why classes are cool. You can extend them, modify them, and so on. Perhaps we should teach this more to fellow data scientists.
I pointed out that both R and Python have similar object systems.
> ou can implement what you want in Python relatively easy.
I don't get why this is necessarily true, but I might be missing something. Can you clarify?
It's problematic because people abuse it for everything (300 line pipes are common, sadly) but it's a really useful tool in moderation.