{"metadata":{"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"},"kernelspec":{"name":"ir","display_name":"R","language":"R"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"Here is a function to un-nest the data from the train.csv file and concatenate each into a single dataframe.\n\nThis should also work for any other datasets that have nested data in JSON format.","metadata":{}},{"cell_type":"code","source":"path <- \"../input/mlb-player-digital-engagement-forecasting/\"\nlibrary(tidyverse)\nlibrary(vroom)\nlibrary(magrittr)\nlibrary(jsonlite)\ndf_train <- read_csv(str_c(path,\"train.csv\"))","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2021-06-19T08:45:45.009789Z","iopub.execute_input":"2021-06-19T08:45:45.012036Z","iopub.status.idle":"2021-06-19T08:47:28.306443Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Function to create un-nested data frames\n\nun_nest_cols <- function(df_name, col_name){\n\ntgm <- df_name[!is.na(df_name[[col_name]]),]\na <- tgm[[col_name]][1] %>% unlist() %>% fromJSON() \ntrain_col <- matrix(ncol = ncol(a)) %>% as.data.frame()\ncolnames(train_col) <- colnames(a)\nfor(i in seq(1:nrow(tgm))){\n  temp <- tgm[[col_name]][i] %>% unlist() %>% fromJSON() \n  train_col <- rbind(train_col, temp)\n}\ntrain_col <-  train_col[-1,]\nreturn(train_col)\n}\n","metadata":{"_uuid":"ccf93dcd-0cc5-4ed9-aba3-fa15f8ec7369","_cell_guid":"afb19dd1-d2aa-44b7-9f09-39baf5266ff1","collapsed":false,"jupyter":{"outputs_hidden":false},"execution":{"iopub.status.busy":"2021-06-19T08:48:07.305439Z","iopub.execute_input":"2021-06-19T08:48:07.334932Z","iopub.status.idle":"2021-06-19T08:48:07.349022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_engagement <- un_nest_cols(df_train, \"nextDayPlayerEngagement\")\ntrain_engagement %>% head()","metadata":{"execution":{"iopub.status.busy":"2021-06-19T08:48:10.272741Z","iopub.execute_input":"2021-06-19T08:48:10.274263Z","iopub.status.idle":"2021-06-19T08:50:14.589020Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_games <- un_nest_cols(df_train, \"games\")\ntrain_games %>% head()","metadata":{"execution":{"iopub.status.busy":"2021-06-19T09:04:20.671890Z","iopub.execute_input":"2021-06-19T09:04:20.684417Z","iopub.status.idle":"2021-06-19T09:04:23.095760Z"},"trusted":true},"execution_count":null,"outputs":[]}]}