Yesterday I was having a problem subsetting based on a numeric key. I had some quantile data and I could get the 10% and 20%, but getting the 30% failed. I was using quantile==.1, quantile==.2, etc.
Thanks to the FAQ I realize that I should be using J to subset and setting the key first, Thanks to StackOverflow I realize now that I should using J to subset on numeric keys<http://stackoverflow.com/questions/13666298/why-subsetting-with-a-numeric-key-doesnt-work-with-data-table> fixes the problem. However, this doesn't explain why using a vector search would sometimes work and sometimes fail. Thank you, Gene Leynes > > library(data.table) data.table 1.8.6 For help type: help("data.table") > > set.seed(1) > > ## Make an example data table > dat = data.table( + index = 1:1e5, + groups = sample(letters[1:3], 1e5, replace=TRUE), + values = rnorm(1e5)) > > ## Calculate some quantiles for each group > dat_quants = dat[ + i=TRUE, + j=list( + quantile = seq(0,1,.1), + value = quantile(values, seq(0,1,.1))), + keyby=groups] > > ## Print the 10% 20% and 30% quantiles... but 30% doesn't work > dat_quants[quantile==.1, ] groups quantile value 1: a 0.1 -1.284277 2: b 0.1 -1.280095 3: c 0.1 -1.291173 > dat_quants[quantile==.2, ] groups quantile value 1: a 0.2 -0.8413631 2: b 0.2 -0.8397591 3: c 0.2 -0.8423560 > dat_quants[quantile==.3, ] Empty data.table (0 rows) of 3 cols: groups,quantile,value > > > ## Changing to character will allow all of them to work > dat_quants$quantile = as.character(dat_quants$quantile) > > sessionInfo() R version 2.15.2 (2012-10-26) Platform: x86_64-w64-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] data.table_1.8.6 geneorama_1.0 > >
_______________________________________________ datatable-help mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
