{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "_cell_guid": "bf1653b5-495c-9fd0-496e-5a96bc19bc8c"
      },
      "source": [
        "This is a visualization of the first 100 jobs."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "_cell_guid": "ed6edb9e-22b5-9a8b-bb2a-1a31ccd733bd"
      },
      "outputs": [],
      "source": [
        "library(data.table)\n",
        "library(dtplyr)\n",
        "library(pbapply)\n",
        "library(dplyr)\n",
        "\n",
        "dtNum <- fread(\"../input/train_numeric.csv\", select = c(\"Id\", \"Response\"),nrows = 50)\n",
        "dtDate <- fread(\"../input/train_date.csv\", nrows = 50)\n",
        "\n",
        "for (station in paste0(\"S\",0:51))\n",
        "{\n",
        "  cols = min(which((grepl(station,colnames(dtDate)))))\n",
        "  if(!cols==Inf){\n",
        "    dtDate[,paste0(station) := dtDate[,cols,with = FALSE]]\n",
        "  }\n",
        "}\n",
        "\n",
        "dtStations = dtDate[,!grepl(\"L\",colnames(dtDate)),with=F]\n",
        "\n",
        "\n",
        "\n",
        "\n",
        "dtStationsM = melt(dtStations,id.vars=c(\"Id\"))\n",
        "\n",
        "dtStationsM %>%\n",
        "  left_join(dtNum, by = \"Id\") -> dtStationsM\n",
        "\n",
        "dtStationsM %>%\n",
        "  filter(!is.na(value)) -> dtStationsMFiltered\n",
        "\n",
        "dtStationsMFiltered %>%\n",
        "  arrange(value) -> dtStationsMFiltered\n",
        "\n",
        "require(GGally)\n",
        "library(network)\n",
        "library(sna)\n",
        "library(ggplot2)\n",
        "dtStationsMFiltered %>%\n",
        "  group_by(Id) %>%\n",
        "  mutate(nextStation = lead(variable)) -> edgelistsComplete\n",
        "\n",
        "edgelistsComplete %>%\n",
        "  group_by(Id) %>%\n",
        "  filter(!(variable %in% nextStation)) %>%\n",
        "  ungroup() %>%\n",
        "  select(variable,Response) -> startingPoints\n",
        "\n",
        "colnames(startingPoints) = c(\"nextStation\",\"Response\")\n",
        "\n",
        "startingPoints$variable = \"XX\"\n",
        "\n",
        "edgelistsComplete %>%\n",
        "  select(variable,nextStation,Response) -> paths\n",
        "\n",
        "paths[is.na(nextStation)]$nextStation = paste(\"Result\",paths[is.na(nextStation)]$Response)\n",
        "\n",
        "\n",
        "paths = rbind(startingPoints,paths)\n",
        "paths = select(paths,-Response)\n",
        "\n",
        "paths$nextStation = as.character(paths$nextStation)\n",
        "paths$variable = as.character(paths$variable)\n",
        "\n",
        "\n",
        "colnames(paths) <- c(\"Target\",\"Source\")\n",
        "\n",
        "pathshelp = select(paths,Source)\n",
        "pathshelp$Target = paths$Target\n",
        "paths=pathshelp\n",
        "\n",
        "\n",
        "\n",
        "\n",
        "\n",
        "net = network(as.data.frame(na.omit(paths)),\n",
        "              directed = TRUE)\n",
        "\n",
        "LineStations = NULL\n",
        "for (station in unique(paths$Source)){\n",
        "  if(station!=\"XX\")\n",
        "  {\n",
        "  x=paste0(\"_\",station,\"_\")\n",
        "  #print(x)\n",
        "  y=head(colnames(dtDate)[which(grepl(x,colnames(dtDate)))],1)\n",
        "  y=strsplit(y,\"_\")[[1]][1]\n",
        "  #print(y)\n",
        "  LineStations = rbind(LineStations,data.frame(Node=station,Line=y))\n",
        "  }\n",
        "}\n",
        "\n",
        "LineStations = rbind(LineStations,data.frame(Node=c(\"Result 1\",\"Result 0\",\"XX\"),Line=c(\"Outcome\",\"Outcome\",\"START\")))\n",
        "\n",
        "x = data.frame(Node = network.vertex.names(net))\n",
        "x = merge(x, LineStations, by = \"Node\", sort = FALSE)$Line\n",
        "\n",
        "\n",
        "net %v% \"line\" = as.character(x)\n",
        "\n",
        "network = ggnet2(net,\n",
        "       alpha = 0.75, size = \"indegree\",\n",
        "       label = T,\n",
        "       color = \"line\",palette = \"Set1\",\n",
        "       mode = \"kamadakawai\",\n",
        "       edge.alpha = 0.05, edge.size = 1)\n",
        "\n",
        "print(network)"
      ]
    }
  ],
  "metadata": {
    "_change_revision": 0,
    "_is_fork": false,
    "kernelspec": {
      "display_name": "R",
      "language": "R",
      "name": "ir"
    },
    "language_info": {
      "codemirror_mode": "r",
      "file_extension": ".r",
      "mimetype": "text/x-r-source",
      "name": "R",
      "pygments_lexer": "r",
      "version": "3.3.1"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}