data.table's dcast() transforms from long to wide format. It lacks a standard-evalutation interface for programming, and dcastSe() is an attempt to fill that gap, still using data.table::dcast() to perform the operation.
dcastSe(data, l, r, as.fun, ...)data set (data.frame) to transpose (widen).
left-hand side variables as character vector. Result will be long/vertical in these variables. The elements in `l` can be named in which case the resulting columns will be renamed accordingly.
left-hand side variables as character vector. Result will be wide in these variables.
An optional function to convert results with. If `data` is a `data.table`, the default is to return a `data.table`, and if not the default is to return a `data.frame`.
Additional arguments passed to `data.table::dcast()`.
a data.frame (see argument `as.fun`)
Only two of l, r, and value.var are needed (see ?data.table::dcast for value.var), and the others will be derived. However, if value.var is a function, both l and r are needed.
dt <- data.frame(
id = rep(1:3, each = 2),
time = rep(c(0, 1), 3),
value = 1:6
)
# Cast to wide format
dcastSe(dt, l = "id", r = "time", value.var = "value")
#> Key: <id>
#> id 0 1
#> <int> <int> <int>
#> 1: 1 1 2
#> 2: 2 3 4
#> 3: 3 5 6
# rename a "left" column
dcastSe(dt, l = c(Subject="id"), r = "time", value.var = "value")
#> Key: <Subject>
#> Subject 0 1
#> <int> <int> <int>
#> 1: 1 1 2
#> 2: 2 3 4
#> 3: 3 5 6