R: Reshape a Vector From Long to Wide Shape Or Vice Versa

ToLong, ToWide {DescTools} | R Documentation

## Reshape a Vector From Long to Wide Shape Or Vice Versa

### Description

Simple reshaping a vector from long to wide or from wide to long shape by means of a single factor.

### Usage

    ToLong(x, varnames = NULL)
    ToWide(x, g, by = NULL, varnames = NULL)

### Arguments

`x` | the vector to be reshaped
`g` | the grouping vector to be used for the new columns. The resulting `data.frame` will return one column per grouplevel.
`by` | a vector to be used to merge the pieces of `x`. If this is left to `NULL` the pieces will be merged by rownames in the order they are supplied.
`varnames` | the variable names if not the grouping levels should be used.

### Details

`ToLong` expects x as a matrix or a data.frame and reshapes it to a (long) factor representation. `ToWide` expects the vectors x, g, by, wheras x being the variable, g the splitting factor and by a vector for rowwise merging.

### Value

the reshaped object

### Author(s)

Andri Signorell <andri@signorell.net>

### See Also

`reshape`

### Examples

    d.x <- read.table(header=TRUE, text="
    AA BB CC DD EE FF GG
    7.9 18.1 13.3 6.2 9.3 8.3 10.6
    9.8 14.0 13.6 7.9 2.9 9.1 13.0
    6.4 17.4 16.0 10.9 8.6 11.7 17.5
    ")

    ToLong(d.x)

    # ToWide by row numbers (by = NULL)
    ToWide(PlantGrowth$weight, PlantGrowth$group)

    # To wide aligned by key
    set.seed(41)
    PlantGrowth$nr <- c(sample(12, 10), sample(12, 10), sample(12, 10))
    head(PlantGrowth)

    ToWide(PlantGrowth$weight, PlantGrowth$group, by=PlantGrowth$nr)

[Package DescTools version 0.99.32 Index]