Benchmarking matrix creation

October 23, 2012
By

(This article was first published on is.R(), and kindly contributed to R-bloggers)

Sometimes it is useful to take a vector, or one column/row of a matrix, and build a new matrix of identical copies of that vector. There are lots of different ways to do this, but I just discovered a new, and very straightforward way to do this with matrix algebra, using the outer() function.

However, I wanted to see whether this new approach was really as fast as I thought it would be, so I wrote up a couple of different functions, all of which take the same input and produce the same output, and used the rbenchmark package to compare their speed. rbenchmark is extremely simple to use, and if you have any function that you expect to be applying hundreds or thousands of times, it’s worth trying to find a fast method to do it.

As you can see from the plot above, the outer()-based function was consistently fast, even as I increased the number of replications. Also, I confirmed for myself the oft-repeated advice to pre-allocate a matrix or vector when building up entries in a loop, rather than building the matrix as the loop progresses. The latter approach (simpleLoop) involves making a new copy of the matrix every iteration, which is indeed very slow.

To leave a comment for the author, please follow the link and comment on their blog: is.R().

R-bloggers.com 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...

Tags: , ,

Comments are closed.

Recent popular posts

Sponsors

Mango solutions



RStudio homepage



Zero Inflated Models and Generalized Linear Mixed Models with R

Dommino data lab

Quantide: statistical consulting and training



http://www.eoda.de







ODSC

ODSC

CRC R books series





Six Sigma Online Training





Contact us if you wish to help support R-bloggers, and place your banner here.

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)