The joy of joining data.tables
The example I present here is a little silly, yet it illustrates how to join tables with
data.table in R.
Mapping old data to new data
Categories in general are never fixed, they always change at some point. And then the trouble starts with the data. For example not that long ago we didn’t distinguish between smartphones and dumbphones, or video on demand and video rental shops.
I would like to back track price change data for smartphones and online movie rental shops, assuming that their earlier development can be set to the categories they were formerly part of, namely mobile and video rental shops to create indices.Here is my toy data: I’d like to create price indices for all products and where data for the new product categories is missing, use the price changes of the old product category. The
data.tablepackage helps here. I start with my original data, convert it into a
data.tableand create mapping tables. That allows me to add the old product with its price change to the new product. The trick here is to set certain columns as key. Two data tables with the same key can easily be joined. Once I have the price changes for products and years the price index can be added. The plot illustrates the result, the R code is below.
R version 3.1.0 (2014-04-10) Platform: x86_64-apple-darwin13.1.0 (64-bit) locale:  en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 attached base packages:  stats graphics grDevices utils datasets methods base other attached packages:  data.table_1.9.2 lattice_0.20-29 loaded via a namespace (and not attached):  grid_3.1.0 plyr_1.8.1 Rcpp_0.11.1 reshape2_1.4 stringr_0.6.2  tools_3.1.0