
## Starting with DT.conversions
##     DT.conversions <- copy(DB.raw[(D != 0 | is.na(D))])

check.correct <- TRUE

## Every NA should be the first time that user signs up
keyCols <- c("customerid", "download_datetime", "product")
setkeyIfNot(DT.conversions, keyCols)

firstRow.by.customer <- DT.conversions[, list(rowNumber=.I[1]), by=customerid]

if (check.correct) {
  firstRows <- firstRow.by.customer$rowNumber
  otherRows <- setdiff(seq(nrow(DT.conversions)), firstRows)
  ## The first row of every customer should be NA, while all other rows should be NONE-NA
  stopifnot(DT.conversions[firstRows, all(is.na(D))])
  stopifnot(DT.conversions[otherRows, all(!is.na(D))])
  verboseMsg(verbose, "Check correct is OK for first row of each customer being D==NA")
}

key(DT.conversions)
    
    ## EXPLORE THIS FURTHER
    MultiConversions <- DT.conversions[, .N, by=customerid][N>2]

    example.multi.cids <- c("fffcc5e0a59f1149227adcb6366a5b01", "000022a9218f6fb2b4afaa40075138c8")
    DB.raw[.(example.multi.cids)]

cids.using <- DT.conversions[product %in% c("Free", "Premium"), unique(customerid)]

DT.conversions.using <- DT.conversions[.(cids.using)]

jesusForData(DT.conversions.using, info="Just created")
DT.conversions.using.bak <- copy(DT.conversions.using)

DT.conversions.using[!is.na(D)]
