![]() Someone well-versed in the idiosyncrasies of a system will think it's easy compared to a system they know nothing about, even if the latter could be objectively shown to require fewer steps or be more accessible. For some reason, just about anything that tries to integrate with the Java Development Kit is janky as hell.Īll of these answers have to be contextualized to people's experiences, and that's not easy. When something breaks it is nearly unfixable, Windows being what it is, so I reinstall R. On Windows: Most things have worked pretty well with R's package management. otoh, it's a pain in the butt to track down all of these libraries. I guess that's good, because it means that R is not installing a bunch of crud in my OS without my say-so. So the issue there was not R's package management, but in how it integrated with Ubuntu. On Ubuntu: It seems like some of the light Ubuntu distributions do not have several dev libraries that some R packages (in the tidyverse and in graph visualization libraries) require. They constitute indefensible crimes against software engineering and sanity.) (The first is R's implementations of object-oriented programming ideas. I teach stats/data science courses with R+RStudio, and this is the second issue that I point out to my students as a potential trouble point. This is pretty true of any lispy language once you design your language to be a parsed expression tree, you can make your language do and look like nearly anything you want that also means it can look very different from person to person, but the flip side is you can make something take 5 lines of expressive code that it'd take 30 lines of imperative code to do. The upside is that the /user facing/ function calls can be extremely expressive and succinct.īasically, the main pro is that it allows the language to be extraordinarily flexible and succinct. The only downside of NSE is that it's slightly harder to program around, for obvious reasons (string manipulation is easier than expression capturing and manipulation that said, there are packages that make this much easier like rlang). That means you don't need strings everywhere, you get closures for free, you're able to create your own operators an extend the language itself, etc. The entire language is basically parsed as an expression tree (data) so you can pass expressions around, create expressions, parse and act on expressions, etc. It's not a namespace problem at all though it is *weird* if you're not used to Lispy languages. I'm in methodology R&D, so part of my job is to maintain, update, iterate on methodologies themselves if an update breaks something (never really happens in R), then that just signals to me we either need a new/better approach to this problem (yay! more R&D) or this is something that will be tech debt later so we may as well fix it now (yay! more long-term code). There's only a handful of major changes that changed the results, but those were really a good change, and more than anything brought previous results into question (e.g., lme4 changing their warnings and optimizers).ĭepends on the kind of work you do though. For the most part, R (or CRAN really) is pretty damn good about not changing default options that would greatly change your result. I feel confident that 95% of my projects would go fine just using pip, but I think I'm going to exclusively let conda manage my R installations, because it can be absolutely maddening trying to rely on R's built-in package management.įor the work I do, personally, if a model is so fragile that a minor update changes the result notably, then I'd probably not bother with that model/analysis in the first place. These certainly happen with Python but they don't happen in multiple layers of nonsense quite so often as with R. Sometimes these are so numerous that tracking down everything that failed and why is a nightmare. Requires a sudo apt-get install command). ![]() Those dependencies failed to install because they are missing their own dependencies or worse, they require an uncommon library that cannot be installed within R (i.e.That installation fails because multiple dependencies failed.I try a simple installation of a package.With R I frequently run into issues (even with dependencies = T) where: I hear people tout all the time how great package management is in R and how Python packages are a complete disaster/oen of the reasons R can be considered better than Python, but I've never actually run into an issue where a Python package installation had 1) an endless litany of unfilled dependencies that pip itself did not properly resolve or 2) where a package failed to install/use the correct version of a dependency.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |