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:
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"
meltadata.tablewhere all variables aremeasure.varswithout specifyingid.varsormeasure.vars, works fine, but triggers a (relevant and informative) warning*:"
id.varsandmeasure.varsare [...] both [...]NULL". So let's try to setid.vars = NULLbecause the data containsmeasure.varsonly:Same warning.
Try similar in
reshape2::melt;id/measure.varsnot specified, generates a warning:Setting
id.vars = NULLremoves the warning:Should
id.vars = NULLindata.table::meltwork like inreshape2::melt, i.e. result in no "guessing" ofid/measure.varsand no warning, "To be consistent withreshape2'smelt"?*Please note the typo in the warning: "conisdered" should be "considered"