5 ms·
R has a lot of choices. I find that the Hadley Universe of libraries of ggplot2, ggvis, dplyr, tidyr, stringr, readr and others with the piping of %>% to be the
by baldfat 11y ago
R has a lot of choices. I find that the Hadley Universe of libraries of ggplot2, ggvis, dplyr, tidyr, stringr, readr and others with the piping of %>% to be the easiest code for reading and getting things done. R has been transformed in the last 5 years but still gets a bad rap which I don't feel it deserves.
R is really more a functional language which most people don't recognize and when they learn the standard core of R with Lisp inspired ideas it really throws them for a loop. I ended up learning Racket (after trying to teach myself Haskell 3 times) and I can say I now "get it," but using the new libraries has really made that point mute.
I love R and am excited to see all the support from Microsoft and other large companies jumping on board.
This does look like a decent way to move to Python though. If someone was to do that I hope they use Rodeo IDE.
- nipun_batra 11y agoI'll second that R is really awesome! Being a computer scientist, it opens up for me a lot of statistical packages.
- s_q_b 11y agoR is the only real game in town for free software for scientific computing these days. From a political perspective R was in the right place at the right time. It was a decent high level language that could handle matrix processing gracefully. Scipy/Numpy weren't ready for production yet. The others were Matlab, SAS, and Stata, all of which R makes look like APL. I'm glad the field has a more healthy open source landscape with worthy competitors in the form of Julia and Numpy/Scipy. R's biggest sin is failure to force people to use functional paradigms by providing juuuust enough imperative sugar to make average Joe programmer feel at home. R is a functional language, and that's the principle under which is should be taught. That said, R also has a large number of main technical strengths: 1. Fast basic statistics within the REPL so you can test hunches quickly. 2. Cutting edge algorithms that often aren't implemented anywhere else. 3. Hugely strong engineering packages for civil, environmental, defense, aerospace and basically any IRL engineering field you can think of. R comes free, with these advantages and many more for the average lab tech.
- mziel 11y agoAnd lists + dataframes as first class citizens. Everything (including dataframes) is pretty much a list. Most R packages nowadays have dataframes in the centre of implementation. Compare it to other languages, lots of code is needed to convert the data from one format to another, because there's no underlying data structure (Python is much better than the rest with regards to that, but still not as good as R).
- baldfat 11y ago> R's biggest sin is failure to force people to use functional paradigms by providing juuuust enough imperative sugar to make average Joe programmer feel at home. R is a functional language, and that's the principle under which is should be taught. 100% in agreement. That states what I have discovered after learning Functional programming. The sad thing is people don't know that it is functional PAST first class functions. http://link.springer.com/chapter/10.1007%2F978-3-642-40447-4_12 http://link.springer.com/chapter/10.1007%2F978-3-642-40447-4...
- semi-extrinsic 11y ago> R is the only real game in town for free software for scientific computing these days. You have a very very narrow definition of scientific computing, excluding a huge part of the field, i.e. anything written in C, C++ or Fortran. And I've never seen people in aerospace or civil engineering use R, it seems to be mostly popular in statistics heavy, "softer" fields such as biology or economics. Edit: to give some examples of what I mean: show me a (molecular dynamics|computational fluid dynamics|finite element method|Poisson solver|magnetohydrodynamics solver|electrodynamics solver|general relativity code|quantum many-body solver|lattice field theory code) written in R. I haven't seen any.
- baldfat 11y agoJust wanted to see a few. R has such a strong Fortran code base that I knew that they needed to be in R somewhere. Molecular Dynamic - https://cran.r-project.org/web/packages/bio3d/index.html https://cran.r-project.org/web/packages/bio3d/index.html computational fluid dynamics - http://search.r-project.org/library/rjacobi/html/xinterp.html http://search.r-project.org/library/rjacobi/html/xinterp.htm... finite element method - https://cran.r-project.org/web/packages/RTriangle/RTriangle.pdf https://cran.r-project.org/web/packages/RTriangle/RTriangle.... Poisson - https://cran.r-project.org/web/packages/isotone/isotone.pdf https://cran.r-project.org/web/packages/isotone/isotone.pdf
- jzwinck 11y agoYou mention that R doesn't deserve the bad rap it had 5 years ago. Less than two years ago I learned the hard way that R reference counting had only three possible counter values. 0, 1, and 2+. So if you took a second reference to something then deleted it, that object's reference count would stay at 2+ forever. Then if you modified it, Copy On Write would kick in, even though there was only one reference living. This was the source of crippling inefficiency in production code. I asked about it back then and the reply was yeah, R does that, hopefully it won't soon. Broken Copy On Write was not acceptable to me in 2014.
- bachmeier 11y ago> R is really more a functional language which most people don't recognize and when they learn the standard core of R with Lisp inspired ideas it really throws them for a loop. Just to clarify, R was initially a dialect of Scheme. On the other hand, with its frustrating silent type changes, you can see its S roots in the same place that gave us C and C++. That's quite a combination in terms of learning curve.
- lispm 11y agoThere is Lisp-stuff in R not coming from Scheme. Like object system inspired by CLOS, FEXPRs from very old Lisps, ...