BENCHMARKING DIFFERENT WAYS TO COPY DATA TABLES
-----------------------------------------------

THIS FITS IN AFTER TRIAL RUN

  concerts.skinny <- copy(concerts[, list(concertID, lineUp.string)]) 

  # split string up into list
  concerts.skinny[, lineUp.list := c(strsplit(as.character(lineUp.string), ","))]

  setkey(concerts.skinny, concertID, lineUp.string)
  minTmp <- copy(concerts.skinny[,   
             list(artistName = gsub("^\\s+|\\s+$", "", unlist(lineUp.list[[1]])), 
                        slot = seq_along(lineUp.list[[1]]), 
                  totalSlots = length(lineUp.list[[1]])
                  ), by = list(concertID, lineUp.string)])

  concerts.skinny <- concerts.skinny[minTmp]


#----------------------------------------------------------------------------#
#----------------------------------------------------------------------------#
copying <- quote(
{  concerts.skinny <- copy(concerts[, list(concertID, lineUp.string)]) ;
  concerts.skinny[, lineUp.list := c(strsplit(as.character(lineUp.string), ","))];

  setkey(concerts.skinny, concertID, lineUp.string);
  minTmp <- copy(concerts.skinny[,   
             list(artistName = gsub("^\\s+|\\s+$", "", unlist(lineUp.list[[1]])), 
                        slot = seq_along(lineUp.list[[1]]), 
                  totalSlots = length(lineUp.list[[1]])
                  ), by = list(concertID, lineUp.string)]);

  concerts.skinny <- copy(concerts.skinny[minTmp])}
  )
#----------------------------------------------------------------------------#
assigning <- quote(
  {concerts.skinny <- copy(concerts[, list(concertID, lineUp.string)]) ;
    concerts.skinny[, lineUp.list := c(strsplit(as.character(lineUp.string), ","))];
  
    setkey(concerts.skinny, concertID, lineUp.string);
    minTmp <- copy(concerts.skinny[,   
               list(artistName = gsub("^\\s+|\\s+$", "", unlist(lineUp.list[[1]])), 
                          slot = seq_along(lineUp.list[[1]]), 
                    totalSlots = length(lineUp.list[[1]])
                    ), by = list(concertID, lineUp.string)]);
  
    concerts.skinny <- concerts.skinny[minTmp]}
  )
#----------------------------------------------------------------------------#
benchmark(copying, assigning, order="relative", replications=300)



#----------------------------------------------------------------------------#
#----------------------------------------------------------------------------#
#----------------------------------------------------------------------------#
setkey(miniConc, concertID, lineUp.string)
minTmp <- copy(miniConc[,   
           list(    artist = gsub("^\\s+|\\s+$", "", unlist(lineUp.list[[1]])), 
                      slot = seq_along(lineUp.list[[1]]), 
                totalSlots = length(lineUp.list[[1]])
                ), by = list(concertID, lineUp.string)])

minTmp[miniConc]
#-----------------------------------------------------------------------------#

