require(data.table)
require(lubridate)

read_cols <- function(file_name, colsToKeep) {
     header <- fread(file_name, nrows = 1, header = FALSE, showProgress = FALSE)
     all_in_header <- all(colsToKeep %chin% unlist(header))
     stopifnot(all_in_header)
 
     fread(file_name, header=TRUE, select=colsToKeep, verbose=FALSE, showProgress = FALSE)
}

#only read click_time column

file_list <-  c("../input/train.csv", "../input/test.csv", "../input/test_supplement.csv")

for ( files in file_list)
{

cat ("Reading ", files, "\n")

data  <- read_cols(files , c("click_time"))

#assing row number as a column
data[, origRowNo :=.I]

data$click_time <- parse_date_time(data$click_time, orders = 'YmdHMS')

#order by click_time
setorder(data, click_time)

data[, newRowNo :=.I]

#check if there is any reordering required

cat("Number of rows requiring reordering:", "\n")
print(dim(data[data$origRowNo != data$newRowNo,]))

}



