library(dplyr)
library(data.table)

# Get the number of clicks on an ad
getClicks <- function(raw, counts = NULL){
  clicks <- raw %>%
    group_by(ad_id) %>%
    summarise(
      click_count = sum(clicked)
    )
  if(!is.null(counts)){
    clicks <- rbind(counts, clicks)
    clicks <- clicks %>%
      group_by(ad_id) %>%
      summarise(
        click_count = sum(click_count)
      )
    }
  clicks
}


i <- 0
j <- 0
batch <- 1000000
while(TRUE){
  x <- fread("../input/clicks_train.csv", sep = ",", skip = j, nrows = batch)
  if(j == 0){
    raw.colnames <- colnames(x)
    ad.counts <- getClicks(x)
  } else{
    colnames(x) <- raw.colnames
    ad.counts <- getClicks(x, ad.counts)
  }
  if(nrow(x) < batch){
    break
  }
  i <- i + 1
  j <- i * batch + 1
}
ad.counts