tags:

views:

998

answers:

3

I'd like to know how to learn the R language as as 'programming' language as opposed to learning it as a statistical system. My question is prompted by lack of understanding of such functions as parse, eval, etc. which may not find frequent use by an R user with a 'statistics' persuasion.

Edit: I've been exploring such tools like Rpy RSPerl rJava and wish to (at the very least) be able to understand concepts that facilitate R's communication with other programming languages.

The availability of Web applications for R (R-PHP, RApache, etc.) is another motivationg factor for me to gain a deeper, more structural understanding of R.

Last but not the least, I'd like to be able to write R packages for which such understanding would be beneficial if not necessary.

+11  A: 

For starters, you might want to look at this article by John Cook. Also make sure that you read "The R Inferno".

There are many good resources on the R homepage, but in particular, read "An Introduction to R" and "The R Language Definition".

Some very closely related stackoverflow questions:

My favorite book on the subject: "Software for Data Analysis: Programming with R", by John Chambers, the creator of the S language.

Shane
I was going to answer with the same link. @harshsinghal Assuming you are not a complete beginner in programming, that link is very useful.
Secko
+1 - terrific answer.
duffymo
I'm going to also vouch for the R inferno. It contains a lot of what I got out of the Chambers book without the verbosity and religious convictions.
eytan
The R inferno document is brilliant
Thrawn
+2  A: 

I'm a very hands-on learner, so this advice may be specific to my learning style. I would suggest that the best place to start "learning to program" in any language involves finding problems outside of your normal range of experience and then trying to solve them using a programming language.

The projects that taught me the most about how to program with R had nothing to do with statistics at all.

Knowing functions like parse() and eval() is by no means a measure for being "a good R programmer". Applications that require heavy use of these functions do not make up a majority of the problem space in which you can apply R. Instead, I think you should try to be "a good programmer" who knows R. This involves refining your problem-solving approaches.

Programming is not a spectator sport-- a good book is indispensable as a reference on the tools available, but you need to find some problems upon which to hone your skills.

Sharpie
Learn by doing...I like it!
Shane
+2  A: 

I would rather suggest a good and comprehensive start, like The R Book by Michael Crawley. It's an easy-to-read and complete book on R core functions, with statistical tips and a few exercises. It focuses a lot on R strengths (e.g. linear models) and gives also useful coding tricks. It helped me a lot while I was struggling on cryptic online courses.

alt text

Thrawn
I agree - this is an excellent introductory book; Crawley writes very clearly.
Richie Cotton