Slashdot Mirror


R 3.0.0 Released

DaBombDotCom writes "R, a popular software environment for statistical computing and graphics, version 3.0.0 codename "Masked Marvel" was released. From the announcement: 'Major R releases have not previously marked great landslides in terms of new features. Rather, they represent that the codebase has developed to a new level of maturity. This is not going to be an exception to the rule. Version 3.0.0, as of this writing, contains only [one] really major new feature: The inclusion of long vectors (containing more than 2^31-1 elements!). More changes are likely to make it into the final release, but the main reason for having it as a new major release is that R over the last 8.5 years has reached a new level: we now have 64 bit support on all platforms, support for parallel processing, the Matrix package, and much more.'"

14 of 75 comments (clear)

  1. Congratulations R Team by Anonymous Coward · · Score: 5, Interesting

    Someone who can't afford license fee of SAS or Matlab, this is the best alternative out there. And in some cases a better alternative.

    Not well known but R's accessibility support is far better. Here is an example from a paper accepted in R Journal

    Statistical Software from a Blind Person's Perspective
    A. Jonathan R. Godfrey

    http://journal.r-project.org/accepted/2012-14/Godfrey.pdf

    1. Re:Congratulations R Team by Anonymous Coward · · Score: 5, Insightful

      It also feels more appropriate, somehow, to do research code in R: It's supposed to be shareable and reproducible, and using an expensive and proprietary language kind of defeats the purpose. Besides, CRAN and Bioconductor have rather a lot of useful stuff...

    2. Re:Congratulations R Team by Anonymous Coward · · Score: 2, Interesting

      Tell that to all the "scientists" and "researchers" paying money for _and_ investing lifetimes worth of effort into writing libraries for Matlab, Maple, Mathematica, LabView and other proprietary environments, instead of contributing to make the existing free environments better.

      Matlab --> GNU Octave, Scilab, NumPy/SciPy
      Maple, Mathematica --> Maxima, SymPy

    3. Re:Congratulations R Team by ceoyoyo · · Score: 4, Interesting

      I have a license for SAS through my university. I gave up trying to convince the stupid thing to install. If the installer wasn't crashing, the license manager was.

      MatLab has similar, though less severe problems.

      R had a nice double click installer that worked the first time. Later I compiled it, which worked without any headaches. There's a nice bridge from R to Python and you can extend either one, or embed either or both in other applications.

      You meant R has better accessibility options for the disabled but it's just plain more accessible.

    4. Re:Congratulations R Team by Bill_the_Engineer · · Score: 5, Insightful

      Tell that to all the "scientists" and "researchers" paying money for _and_ investing lifetimes worth of effort into writing libraries for Matlab, Maple, Mathematica, LabView and other proprietary environments, instead of contributing to make the existing free environments better.

      Times are changing. There are many forces at work here:

      1. Cutbacks in funding is making lead scientists look for ways to save money.
      2. The proprietary vendors upgrading their software and charging license fees for each version (one particular vendor licenses specific minor versions).
      3. The desire to share work and non-proprietary methods are the best way to do it.
      4. New postdocs are familiar with python (they like working in iPython in particular) and its libraries.
      5. R is gaining ground with the older scientists due to its features and price.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    5. Re:Congratulations R Team by spike+hay · · Score: 4, Insightful

      Drives me crazy. At least with statisticians, R is by far the dominant package now. But in science, it's Matlab Matlab Matlab.

      Python + Numpy/Scipy is such a better alternative now it's not even funny. It's actually a real language, and has loads of packages. And unlike Matlab, you don't have to pay extra money for additional packages (or any money).

      The use of closed source software in science is a waste of scarce resources, and it hurts openness. Another thing is that every numerical type class I've had has used Matlab. It's really unfair to expect students to purchase a copy. I use Octave when I have to deal with this, but it is not perfectly compatible.

      --
      If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.
  2. Re:How modern! by scatteredthoughts · · Score: 2

    Are you aware of better alternatives?

  3. This is how it should be done ... by golodh · · Score: 4, Insightful
    R's developers are, unlike many other Open Source developers, very careful about releasing production-quality software.

    As in: when they release it, you can trust it to work.

    Hence they didn't mess around with major reconstruction of R's guts until they could release something that's finished (and well-tested !) and bumped the version number to 3.0.0 when they did in order to properly differentiate it from previous versions.

    This is one of the differences between amateur OSS offerings (like for example KDE with its miriad half-baked Kxxx packages, sundry horrible OSS games, etc.) and genuine production-quality OSS (like R, Lapack, Octave, Libre Office, PostgressQL, MySQL, GRASS GIS, QGIS, Maria DB, GNU CC, the Linux kernel etc.)

    This is very gratifying as R happens to see widespread use in academia, government and business when it comes to data analysis and statistics.

    If R has a weakness, it is that uses an in-memory approach to data-processing, unlike e.g. SPSS, which keeps almost nothing in memory and simply makes passes through datafiles whenever it needs something. R is also a bit memory-hungry, so the need for genuine 64-bit implementations should be clear.

    Apart from sporting about 4000 useful and ready-to-run statistical applications packages, R has convenient and efficient integration with C code and has what's probably a contender for the best support for data-graphics anywhere.

    For those who didn't know, even packages like SPSS and SAS have incorporated R interfaces to tap into the wealth of application packages that R offers. Can't think of a more significant compliment right now.

  4. Re:How modern! by LourensV · · Score: 4, Insightful

    I recently switched my scientific programming from R to Python with NumPy and Matplotlib, as I couldn't bear programming in such a misdesigned and underdocumented language any more. R is fine as a statistical analysis system, i.e. as a command line interface to the many ready-made packages available in CRAN, but for programming it's a perfect example of how not to design and implement a programming language. It's also unusably slow unless you vectorise your code or have a tiny amount of data. Unfortunately, vectorisation is not always possible (i.e. the algorithm may be inherently serial), and even when it is, it tends to yield utterly unreadable code. Then there is the disfunctional memory management system which leads you to run out of memory long before you should, and documentation even of the core library that leaves you no choice but to program by coincidence.

    As an example of a fundamental problem, here's an R add-on package that has as its goal to be "[..] a set of simple wrappers that make R's string functions more consistent, simpler and easier to use. It does this by ensuring that: function and argument names (and positions) are consistent, all functions deal with NA's and zero length character appropriately, and the output data structures from each function matches the input data structures of other functions.". Needless to say that there is absolutely no excuse for having such problems in the first place; if you can't write consistent interfaces, you have no business designing the core API of any programming language, period.

    Python has its issues as well, but it's overall much nicer to work with. It has sane containers including dictionaries (R's lists are interface-wise equivalent to Python's dictionaries, but the complexity of the various operations is...mysterious.) and with NumPy all the array computation features I need. Furthermore it has at least a rudimentary OOP system (speaking of Python 2 here, I understand they've overhauled it in 3, but I haven't looked into that) and much better performance than R. On the other hand, for statistics you'd probably be much better off with R than with Python. I haven't looked at available libraries much, but I don't think the Python world is anywhere near R in that respect.

    Anyway, for doing statistics I don't really think there's anything more extensive out there than R, proprietary or not, although some proprietary packages have easier to learn GUIs. In that field, R is not going to go anywhere in the foreseeable future. For programming, almost anything is better than R, and I agree that those improvements you mention are not doing much to improve Rs competitiveness in that area.

  5. Re:tutorials.. by Bearhouse · · Score: 3, Informative

    Hard to know where to start, especially as you give no information on your target audience...Do they know stats already?
    Also, if your target audience is used to GUIs rather than CL, then...
    http://answers.oreilly.com/topic/954-introducing-the-r-graphical-user-interface/

    Alternative, you use Web front-end here, (disclaimer, I've not tried it)

    http://www.squirelove.net/r-node/doku.php

    Writing a tutorial from nothing is hard. You can do this to get some good ideas:

    1. Download a free evaluation copy of 'Minitab'.
    (I'm not connected with Minitab, but I've used it a lot, and it's great 'basic' stats analysis software)
    2. Install, and then open help
    3. Consult 'tutorials' section :) Obviously, don't just rip off their stuff; not cool

    As a suggested flow, I've found that, as a start, you can introduce basic stats, then demonstrate how the software works.
    Using the same data-set for the first few, (say ten), lessons is better. Minitab tutorials keep changing the data, which confuses students.
    You'll only need 5 columns or so, and remember to include some discrete variables to enable stratification of your continuous variables.
    Use a real-world example, such as household expenses for different families, whatever.

    For tutorial flow, what works for me as a 'basic' intro to a stats package:

    1. What is data? What are statistics?
    2. Types of data, how they look as raw data, (in the database) and then once we start to analyse them with stats and graphs (to start, just 'common' stuff like continuous variables, normal & lognormal, and discrete, binomial & poisson).
    3. Basic stats & graphical analysis for single variables. Normality tests. Include time series plots as well as histograms / dotplots / boxplots.
    4. Multivariate analysis; x/y charts, matrix plots, interaction plots.
    5. Hypo tests (for both cont & disc variables)
    6. Regression, (simple, then multiple if you're feeling brave)
    7. Control charts (for both cont & disc variables)

    If you work out how to do this in 'R', by actually using it, your tutorial will pretty much write itself, (keep saving your screens - Irfanview is a great, free, tool I use for this. Install, open, hit 'C' for manual or automatic screen save options.)

  6. Re:GUI by clark0r · · Score: 2

    I have recently implemented RStudio for a customer. http://www.rstudio.com/ It's a web interface for R which appears to be clean and easy to use. Installation was straightforward from RPM, you only need R-core, R-devel xdgutils and the rstudio RPM itself.

  7. Re:GUI by golodh · · Score: 4, Informative
    There are usable GUI's for R, and best of all: they can be installed as packages from within R.

    The best-known one is called 'R commander' (package name = Rcmdr ). It gives you a point-and-click interface and (like SPSS) drops the R code to repeat what you did using the menu (so that your work is reproducable).

    Functionality includes: data summaries, contingency tables, means tests, proportions tests, variance tests, ANOVA, cluster analysis, model fitting (linear, generalised linear, logit), various graphs, tests for comparison between fitted models, plus draws and lookup tables for lots of continuous and discrete distributions. Rcmdr allows for plugins, and a number of them are also downloadable as R packages (e.g. experimental design).

    The second one I know about is called 'Deducer' (package name Deducer), which provides a GUI loosely resembling that of SPSS.

    Both GUIs are workable and allow you to do simple things simply.

    There's also a rather nice IDE, called RStudio (which is a separate download).

  8. Re:How modern! by Anonymous Coward · · Score: 3, Interesting

    I can somewhat relate to the documentation issue although I believe that it is more a question of organizing the documentation.

    When you mention "a fundamental problem" you mention function implementations, thus library rather than language issues. R itself is an extremely expressive, functional (or rather multi-paradigm) language that can be programmed to run efficient code. Yet it is syntactically minimalistic without unneeded syntax (as opposed to all of the scripting languages perl/python/ruby). This makes it a truly postmodern language IMO. Efficiency can sometimes be a problem but the break-even point for implementing parts in say C/C++ is only slightly different than for other languages (say perl/python) and is enabled by an excellent interface (Rcpp package).

    For myself the biggest change to make was to start thinking in functional concepts coming from a procedural background. Much of R criticism IMO stems on a failure to realize conceptual differences between functional and procedural programming. Another problem that might spoil the impression of R sometimes is the plethora of packages of highly varying quality.

  9. Re:How modern! by njnnja · · Score: 4, Interesting

    Despite R's weaknesses as a programming language, R has such a large number of well-documented, well-tested, statistical functions with a wide array of arguments to vary that it is very difficult for another language to match. For example, maybe you want to build an arima time series model. OK, not too tough to find a library in Python or C++ that does that. Now what if you want to add an exogenous variable to the arima model? Maybe a seasonal component? Next maybe you want to automatically pick the best model according to AIC? Oops, make that BIC. Looking at it again maybe a Vector Autoregressive model is best. Or a VECM?

    While I'm sure there are excellent implementations of all of these wrinkles in other languages, with R, I have great confidence that the functions that I want and need now and in the future are going to be there and are going to be implemented correctly, and kudos to the R team for giving us that kind of confidence.

    R does have a lot of problems, among the worst is loop performance. It really forces you to vectorize everything, which leads to less maintainable code, and is generally a coding technique that new hires coming from other languages will face a steep learning curve with. What I have found useful is to use R as a data exploration and model parameterization tool, but once the model is ready to be put into production, you can use the parameters calculated by R in an implementation in the language of your choice, e.g., C++.

    I guess this is a long winded way of saying that as with so many questions of "which language is best," the real question is "which question is best for you and your application?" R is usually the best language only for people who are regularly using a such a wide variety of statistical analyses that you won't find a large part of what you need in the libraries of other languages. For me, I couldn't imagine working without it.