{"cells":[{"metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","trusted":true,"collapsed":true},"cell_type":"code","source":"install.packages(c(\"naniar\", \"tabplot\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true},"cell_type":"code","source":"library(tidyverse)\nlibrary(naniar)\nlibrary(tabplot)\nlibrary(Matrix)\nlibrary(data.table)\noptions(warn = -1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"collapsed":true},"cell_type":"code","source":"data_train <- read_csv(\"../input/cat-in-the-dat-ii/train.csv\")\nsetDT(data_train)\ndata_train[, partition := \"train\"]\n\ndata_test <- read_csv(\"../input/cat-in-the-dat-ii/test.csv\")\nsetDT(data_test)\ndata_test[, target := NA]\ndata_test[, partition := \"test\"]\n\ndata_all <- rbind(data_train, data_test)\n\nnames_all <- names(data_all[, !c(\"id\", \"partition\")])\nnames_bin <- grep(\"^bin\", names_all, value = TRUE)\nnames_nom <- grep(\"^nom\", names_all, value = TRUE)\nnames_ord <- grep(\"^ord\", names_all, value = TRUE)\nnames_time <- c(\"day\", \"month\")\nnames_features <- c(names_bin, names_nom, names_ord, names_time)\nname_target <- \"target\"\n\nfor(j in names_all) {\n    set(data_all, j = j, value = factor(data_all[[j]]))\n}\n\nfor(j in names_ord) {\n    set(data_all, j = j, value = ordered(data_all[[j]]))\n}\n\ndata_all[, ord_0 := fct_relevel(ord_0, c(\"1\", \"2\", \"3\"))]\ndata_all[, ord_1 := fct_relevel(ord_1,\n                                c(\"Novice\", \"Contributor\",\n                                  \"Expert\", \"Master\", \"Grandmaster\"))]\ndata_all[, ord_2 := fct_relevel(ord_2, c(\"Freezing\", \"Cold\", \"Warm\",\n                                         \"Hot\", \"Boiling Hot\", \"Lava Hot\"))]\n\ndata_all[, id := NULL]\ndata_train <- data_all[partition == \"train\", ]\ndata_train[, partition := NULL]\ndata_test <- data_all[partition == \"test\", ]\ndata_test[, partition := NULL]\n\n## Index missing values\nindex_train_complete <- complete.cases(data_train)\ndata_train_complete <- data_train[index_train_complete, ]\ndata_train_na <- data_train[!index_train_complete, ]\n\n## Do some feature engineering\nord_5 <- data_train[, str_split_fixed(ord_5,\n                                      n = 2,\n                                      pattern = \"\")]\nord_5_1 <- ord_5[, 1] %>%\n    dplyr::na_if(\"\") %>%\n    fct_relevel(c(str_to_upper(letters)), letters)\ndata_train[, ord_5 := ..ord_5_1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Set up a function to display tableplots for a set of features."},{"metadata":{"trusted":true},"cell_type":"code","source":"options(repr.plot.width = 28, repr.plot.height = 10)\ntabplots <- function(feature_names) {\n    walk(feature_names,\n         function(feature)\n             tableplot(data_train,\n                       sortCol = feature,\n                       nCol = 13,\n                       title = feature,\n                       fontsize = 15,\n                       fontsize.title = 25,\n                       rotate_names = FALSE))\n}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tabplots(list(\"target\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tabplots(names_bin)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tabplots(names_nom)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tabplots(names_ord)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"tabplots(names_time)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"We can use an upset plot to look for patterns in missing data across features."},{"metadata":{"trusted":true},"cell_type":"code","source":"naniar::gg_miss_upset(data_train[, !\"target\"],\n                      nsets = ncol(data_train))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Doesn't look like there's anything there."}],"metadata":{"kernelspec":{"display_name":"R","language":"R","name":"ir"},"language_info":{"mimetype":"text/x-r-source","name":"R","pygments_lexer":"r","version":"3.4.2","file_extension":".r","codemirror_mode":"r"}},"nbformat":4,"nbformat_minor":1}