## Not run:
# DT = data.table(x=rep(c("b","a","c"),each=3), v=c(1,1,1,2,2,1,1,2,2), y=c(1,3,6), a=1:9, b=9:1)
# DT
# X = data.table(x=c("c","b"), v=8:7, foo=c(4,2))
# X
#
# DT[.N] # last row, only special symbol allowed in 'i'
# DT[, .N] # total number of rows in DT
# DT[, .N, by=x] # number of rows in each group
# DT[, .SD, .SDcols=x:y] # select columns 'x' and 'y'
# DT[, .SD[1]] # first row of all columns
# DT[, .SD[1], by=x] # first row of 'y' and 'v' for each group in 'x'
# DT[, c(.N, lapply(.SD, sum)), by=x] # get rows *and* sum columns 'v' and 'y' by group
# DT[, .I[1], by=x] # row number in DT corresponding to each group
# DT[, .N, by=rleid(v)] # get count of consecutive runs of 'v'
# DT[, c(.(y=max(y)), lapply(.SD, min)),
# by=rleid(v), .SDcols=v:b] # compute 'j' for each consecutive runs of 'v'
# DT[, grp := .GRP, by=x] # add a group counter
# X[, DT[.BY, y, on="x"], by=x] # join within each group
# ## End(Not run)
Run the code above in your browser using DataLab