Publications by Jeffrey Horner
Deploy Rook Apps: Part II
In Part I, I described how you can deploy your Rook applications with rApache. This post describes how you can do it with R itself. But before we get into that, I’d like to explain the off-again on-again relationship Rook has had with CRAN, R’s package archive network. Since inception (of Rook, not the movie), I wanted to give Rook the most f...
2704 sym R (1131 sym/3 pcs)
Innovation in Statistical Computing
In A Capitalist’s Dilemma, Whoever Wins on Tuesday, Clayton Christensen lays out three kinds of innovations through which an industry cycles: Empowering Innovations – those that offer products and services to a new customer base. The classic empowering (or disruptive) innovation is Ford Motor Company’s introduction of the low-cost Model T c...
3580 sym
RMySQL Looking For A New Maintainer
Please contact me if you’d like to take over maintainership of this popular R package. Related To leave a comment for the author, please follow the link and comment on their blog: Jeffrey Horner. R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post...
483 sym
It’s Time For A Change: A Shiny One
I presented rApache to the public for the first time at the Directions in Statistical Computing workshop in August 2005 (paper), almost seven years ago. It might have been novel, maybe even crazy at the time, but I think rApache showed people a new way to bring R to the web. I presented brew, a templating framework for mixing HTML and R code,...
1383 sym
Hash Table Performance in R: Part I
What Is It?A hash table, or associative array, is a well known key-value data structure. In R there is no equivalent, but you do have some options. You can use a vector of any type, a list, or an environment.But as you’ll see with all of these options their performance is compromised in some way. In the average case a lookupash tabl for a key s...
3421 sym R (3616 sym/11 pcs) 6 img
Hash Table Performance in R: Part II In Part I of this series, I explained how R hashed…
Hash Table Performance in R: Part II In Part I of this series, I explained how R hashed environments are superior to vectors or lists when you need a hash table for your work. I also teased that in this post I would explain the caveats associated with that choice, but I’m saving that for later as I want to share with you the fastest ways of ope...
3063 sym R (2600 sym/10 pcs)
Hash Table Performance in R: Part III In Part I of this series, I explained how R hashed…
Hash Table Performance in R: Part III In Part I of this series, I explained how R hashed environments are superior to vectors or lists when you’re in need of an associative array. In Part II I explained the three main operations you want to perform on hash tables and how you should implement them for optimal performance. This time around I wa...
5070 sym R (1429 sym/7 pcs)
Hash Table Performance in R: Part IV
In the last post I introduced the package envestigate that provides the hash table structure and interesting statistics associated with an R environment. Now I want to show you some performance characteristics of the R environment as a hash table. I’ll be using a synthetic list of distinct words that mimics real world data scraped from Wikipedi...
2060 sym R (2207 sym/1 pcs) 2 img
Blowing Away the Competition
In February I embarked on a mission to speed up R, and I’m very pleased with the results so far. I redesigned the internal string cache, symbol table, and environments by using a somewhat obscure data structure called an Array Hash. It’s basically a cache conscious hash table designed for performance which you can read more about below. Here�...
5467 sym 6 img
Course Profiles in ggplot2
Over on my other blog, Droppin’ The Hammer… where I journal my ultra running experience, I featured a novel ggplot2 plot for highlight elevation gain and loss on running race course profiles. If you’ve never run a particular race you might like to compare the course profile to something you’ve run before. I thought I’d share one here on...
949 sym 2 img