Open
Description
melt
a data.table
where all variables are measure.vars
without specifying id.vars
or measure.vars
, works fine, but triggers a (relevant and informative) warning*:
library(reshape2)
library(data.table)
dt <- data.table(x1 = 1, x2 = 2, x3 = 3)
melt(dt)
# variable value
# 1: x1 1
# 2: x2 2
# 3: x3 3
# Warning message:
# In melt.data.table(dt) :
# To be consistent with reshape2's melt, id.vars and measure.vars are internally guessed when both
# are 'NULL'. All non-numeric/integer/logical type columns are conisdered id.vars, which in this case
# are columns []. Consider providing at least one of 'id' or 'measure' vars in future.
"id.vars
and measure.vars
are [...] both [...] NULL
". So let's try to set id.vars = NULL
because the data contains measure.vars
only:
melt(dt, id.vars = NULL)
Same warning.
Try similar in reshape2::melt
; id/measure.vars
not specified, generates a warning:
dt <- as.data.frame(dt)
melt(df)
# No id variables; using all as measure variables
# variable value
# 1 x1 1
# 2 x2 2
# 3 x3 3
Setting id.vars = NULL
removes the warning:
melt(df, id.vars = NULL)
# variable value
# 1 x1 1
# 2 x2 2
# 3 x3 3
Should id.vars = NULL
in data.table::melt
work like in reshape2::melt
, i.e. result in no "guessing" of id/measure.vars
and no warning, "To be consistent with reshape2
's melt
"?
*Please note the typo in the warning: "conisdered" should be "considered"