library(readr)
library(data.table)
library(dplyr)
library(tidyr)

get_binary_hash <- function(x){
  return (unite(x, binary_hash, L0_S0_F0:L3_S51_F4262, sep = "", remove = TRUE))
}

train <- fread('../input/train_numeric.csv',
    nrows = 100000
)
train <- data.frame(train)

train[,2:969] <- train[,2:969] + 2
train[,2:969][!is.na(train[,2:969])] <- 1
train[is.na(train)] <- 0

binary_hash_df <- get_binary_hash(train)
train$hash <- binary_hash_df$binary_hash
train <- train %>%
    group_by(hash) %>%
    mutate(rows = n(), n_anom = sum(Response == 1)) %>%
    ungroup()
train <- train[order(train$hash),]

write_csv(train, 'train_numeric_100k_hashed_01.csv')