R (15) Admin (12) programming (11) Rant (6) personal (6) parallelism (4) HPC (3) git (3) linux (3) rstudio (3) spectrum (3) C++ (2) Modeling (2) Rcpp (2) SQL (2) amazon (2) cloud (2) frequency (2) math (2) performance (2) plotting (2) postgresql (2) DNS (1) Egypt (1) Future (1) Knoxville (1) LVM (1) Music (1) Politics (1) Python (1) RAID (1) Reproducible Research (1) animation (1) audio (1) aws (1) data (1) economics (1) graphing (1) hardware (1)

20 April 2010

Little R == r

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.

No comments:

Post a Comment