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. Thedata.table
package helps here. I start with my original data, convert it into a data.table
and 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.
Session Info
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] data.table_1.9.2 lattice_0.20-29
loaded via a namespace (and not attached):
[1] grid_3.1.0 plyr_1.8.1 Rcpp_0.11.1 reshape2_1.4 stringr_0.6.2
[6] tools_3.1.0
Citation
For attribution, please cite this work as:Markus Gesmann (Jun 10, 2014) The joy of joining data.tables. Retrieved from https://magesblog.com/post/2014-06-10-the-joy-of-joining-datatables/
@misc{ 2014-the-joy-of-joining-data.tables,
author = { Markus Gesmann },
title = { The joy of joining data.tables },
url = { https://magesblog.com/post/2014-06-10-the-joy-of-joining-datatables/ },
year = { 2014 }
updated = { Jun 10, 2014 }
}