Little R == r

April 21, 2010

(This article was first published on Life in Code, and kindly contributed to R-bloggers)

There’s big R, the R that I use to do most my work, the environment that makes pretty graphics, et. al. It’s like matlab, only cooler. Or more cool. Or less uncool. You can see my prejudices here.

Today i discovered little R. It’s like big R, only little. Holy shit.

Dirk gives a thorough rundown here Suffice to say, for someone who’s been using pipes and #!/usr/bin constructs for years (though not quite yet decades), this is cooler than cool. One might say, super-cool.

It’s also a nice intro to R for some of the systems geeks out there. Need a million random numbers uniformly distributed between 0 and 1, specified to 7 decimal points? Need it in a file? Need it fast? r can help:

time r -q -e 'for (i in rnorm(1e6)) cat(sprintf("%1.7f\n", i))' >> randomnums  

Or perhaps you have a million numbers in some file that you would like to plot as a histogram, fast, every day, in an automated fashion, from the command line…

cat randomnums | r  -e 'myrandoms <- as.numeric(readLines()); png(filename="myplot.png"); 
plot(histogram(myrandoms));' >/dev/null   

No, it won’t mungle strings with the ease of python, but it can chew a spreadsheet and spit it out *fast*. And since it’s a stream, you can always pipe it to/from python. If you ask me, pretty fucking cool.

To leave a comment for the author, please follow the link and comment on their blog: Life in Code. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)