R programming for those coming from other languages
johndcook.com
johndcook.com
As Buckwild said, best way to learn R is by messing around with it; There's in-editor help and a REPL. Download the GUI for your OS, not just the command-line tool; it has nice package management and graphical output (to a quartz window in os x).
If you're thinking of using R for plotting as well as analysis, I heartily heartily recommend the ggplot2 package. ( http://had.co.nz/ggplot2/ ) -- there's a lively google group for support and the output is far better than comparable packages (like lattice, my second favorite).
The other famous book for R isn't actually for R -- it's for S. http://www.stats.ox.ac.uk/pub/MASS4/ R is the open-source superset implementation of S/S-plus.
Download R and give it a shot: http://cran.r-project.org/mirrors.html
I think that's the real way to learn R. Play with it until you're thoroughly frustrated, then download a few packages like Reshape and learn them. They'll probably have better documentation and typically have some really specific use cases which will help you understand how to use R toward its strengths.
I picked up R 2 weeks ago at work. I didn't know anything about it and I sucked at using it. I am proud to say that after 2 weeks of hard work, cursing at the computer monitor and beating my head against the cubicle wall, I am dramatically better than I was-- comparable to the experienced R programmers who work here.
Absolutely true, but you still need something to read to introduce you to the basic syntax and the general concepts of the language. Having a bridge between a known language and a new language can significantly speed this phase up, and get you quickly to the point where you're able to start experimenting.
That said, I only learned enough of R to get it to do what I wanted. The help in the interactive mode was all I really had to go off of then, and that was very helpful with plenty of examples. Being a relatively uncommon, single-letter language name, google wasn't giving me anything useful at the time. I see that is now much improved now, but this tutorial - mapping it to other languages and explaining syntax gotchas - would have saved me several hours of ramp-up for the simple tasks I wanted to accomplish.
This is really good method, but doing it alone may not teach you the correct paradigms of the language. You can write FORTRAN in any language, but you probably shouldn't.
If I were about to learn Python by just converting some PHP fragments, I would surely miss those characteristics that seperate Python from PHP. However, by reading other people's code or reading some documents on idiomatic Python (e.g. [1]), my understanding would be much better.
[1] - http://python.net/~goodger/projects/pycon/2007/idiomatic/han...
The official help docs are very good, also the extensions guide is pretty vital if you're linking to c etc. http://cran.r-project.org/manuals.html
Also the ESS(emacs speaks statistics) extension is really really good, well certainly if you're doing something statisticy with R.
1- http://www.joeconway.com/plr
2- http://cran.r-project.org/web/packages/RPostgreSQL/index.htm...
It doesn't have quite the shortcuts for making basic stuff completely trivial (in the 10-50 LOC range), but for anything with more structure, I find it generally works out better in the end.
Somehow this does not seem like an auspicious starting statement!
I guess I come from a background of looking at big applications and finding points failure where someone did something that would "probably work" - ie, it works till you allocate 5 megs of memory or....
I've never had a problem, but again, I've never tried to write R libraries for public consumption, or hack on large chunks of existing R code, so YMMV.