As a follow-up to #1444 and #3689, I think it's useful to keep a list of all the features missing for users who want to do work involving complex-valued columns z:
v1.12.4 NEWS contains :

Examples
DT = data.table(a = 1:5, z = 6:10 + (5:1)*1i)
1.
Error in forderv(ans, cols, sort = TRUE, retGrp = FALSE, order = if (decreasing) -order else order, :
Column 1 of by= (1) is type 'complex', not yet supported. Please use the by= argument to specify columns with types that are supported. See NEWS item in v1.12.2 for more information.
2.
Error in [.data.table(DT, , .N, by = z) :
column or expression 1 of 'by' or 'keyby' is type complex. Do not quote column names. Usage: DT[,sum(colC),by=list(colA,month(colB))]
3.
Error in fwrite(DT) :
Column 2's type is 'complex' - not yet implemented in fwrite.
fread('a\n1+i')
# a
# <char>
# 1: 1+i
4.
Error: Column 1 of by= (1) is type 'complex', not yet supported. Please use the by= argument to specify columns with types that are supported. See NEWS item in v1.12.2 for more information.
Coming from forderv so first this is a repeat of 1
DT[CJ(a, z, sorted = FALSE)]
Error: Type 'complex' not supported by CJ.
5.
DT[ , total := base::sum(z), by = .(a %% 2)]
DT[ , total := base::sum(z), by = .(a %% 2)]
Error in [.data.table(DT, , :=(total_rad, base::sum(z)), by = .(a%%2)) :
Internal error: writeNA passed a vector of type 'complex'
6.
DT[ , sum(z), by = .(a %% 2)]
Error in gsum(z) :
Type 'complex' not supported by GForce sum (gsum). Either add the prefix base::sum(.) or turn off GForce optimization using options(datatable.optimize=1)
7.
Error in bmerge(i, x, leftcols, rightcols, roll, rollends, nomatch, mult, :
x.z is type complex which is not supported by data.table join
8.
DT[ , coalesce(`is.na<-`(z, 1), 0+0i)]
Error in coalesce(is.na<-(z, 1), 0 + (0+0i)) :
Unsupported type: complex
9.
Error in shift(z) : Unsupported type 'complex'
As a follow-up to #1444 and #3689, I think it's useful to keep a list of all the features missing for users who want to do work involving complex-valued columns
z:z(Extend forder support to 'complex' type. #1703); by extensionfrank(z),rowid(z),dcast,setkey,uniqueNbyzzI/O (fread(withoutcolClasses) &fwrite; overlap with Master task for fread bugs / proposals #2247)CJ(z)zbygroupGForceonzJoins onwait until a user requests it with justification (that part of bmerge.c is complex)zcoalesce(z)shift(z)unique(z):=Wrong values in j with complex values if "by" has more than 1 group. #3639v1.12.4 NEWS contains :
Examples
1.
2.
3.
4.
Coming from
fordervso first this is a repeat of 15.
6.
7.
8.
9.