loading...

melt() is reshaping wide-to-long, notb unlike tidyr::pivot_longer()` for data.trame objects. See data.table::melt() for explanations.

melt(data, ..., na.rm = FALSE, value.name = "value")

# S3 method for class 'data.trame'
melt(
  data,
  id.vars,
  measure.vars,
  variable.name = "variable",
  value.name = "value",
  ...,
  na.rm = FALSE,
  variable.factor = TRUE,
  value.factor = FALSE,
  verbose = getOption("datatable.verbose")
)

Arguments

data

A data.trame object.

...

Arguments passed to other methods.

na.rm

Should NA values be removed? Default is FALSE.

value.name

Name for the molten data values column(s).

id.vars

Vector of id variables.

measure.vars

Measure variables for melting. Can be missing.

variable.name

Name (default variable) of output column containing the information about melted columns.

variable.factor

If TRUE, the variable column is converted to a factor, otherwise, it is a character column.

value.factor

If TRUE, the value column is converted to a factor, else, it is left unchanged.

verbose

TRUE turns on status and information messages.

Value

An unkeyed data.trame containing the molten data.

Examples

# Adapted from first example of ?melt.data.table
set.seed(45)
library(data.trame)
dtrm <- data.trame(
  i_1 = c(1:5, NA),
  n_1 = c(NA, 6, 7, 8, 9, 10),
  f_1 = factor(sample(c(letters[1:3], NA), 6L, TRUE)),
  f_2 = ordered(c("z", "a", "x", "c", "x", "x")),
  c_1 = sample(c(letters[1:3], NA), 6L, TRUE),
  c_2 = sample(c(LETTERS[1:2], NA), 6L, TRUE),
  d_1 = as.Date(c(1:3,NA,4:5), origin = "2013-09-01"),
  d_2 = as.Date(6:1, origin = "2012-01-01")
)
# add a couple of list cols
dtrm$l_1 <- dtrm[, ~list(c = list(rep(i_1, sample(5, 1L)))), by = ~i_1]$c
dtrm$l_2 <- dtrm[, ~list(c = list(rep(c_1, sample(5, 1L)))), by = ~i_1]$c

# id.vars, measure.vars as character/integer/numeric vectors
melt(dtrm, id.vars = 1:2, measure.vars = "f_1")
#> # A data.trame: [6 × 4]
#>     i_1   n_1 variable value
#>   <int> <dbl> <fct>    <chr>
#> 1     1    NA f_1      a    
#> 2     2     6 f_1      c    
#> 3     3     7 f_1      b    
#> 4     4     8 f_1      NA   
#> 5     5     9 f_1      c    
#> 6    NA    10 f_1      b