fill
If set, missing values will be replaced with this value. Note
that there are two types of missingness in the input: explicit missing
values (i.e. NA), and implicit missings, rows that simply aren't
present. Both types of missing value will be replaced by fill.
drop
If FALSE, will keep factor levels that don't appear in the
data, filling in missing combinations with fill.
sep
If NULL, the column names will be taken from the values of
key variable. If non-NULL, the column names will be given
by "<key_name><sep><key_value>".