Learn R Programming

gdata (version 2.7.1)

wideByFactor: Create multivariate data by a given factor

Description

wideByFactor modifies data.frame in such a way that variables are separated into several columns by factor levels.

Usage

wideByFactor(x, factor, common, sort=TRUE, keepFactor=TRUE)

Arguments

x
data frame
factor
character, column name of a factor by which variables will be divided
common
character, column names of (common) columns that should not be divided
sort
logical, sort resulting data frame by factor levels
keepFactor
logical, keep the factor column

Value

  • A data frame where divided variables have sort of diagonalized structure

Details

Given data frame is modified in such a way, that output represents a data frame with $c + f + n * v$ columns, where $c$ is a number of common columns for all levels of a factor, $f$ is a factor column, $n$ is a number of levels in factor $f$ and $v$ is a number of variables that should be divided for each level of a factor. Number of rows stays the same!

See Also

reshape in the stats package, melt and cast in the reshape package

Examples

Run this code
n <- 10
f <- 2
tmp <- data.frame(y1=rnorm(n=n),
                  y2=rnorm(n=n),
                  f1=factor(rep(letters[1:f], n/2)),
                  f2=factor(c(rep(c("M"), n/2), rep(c("F"), n/2))),
                  c1=1:n,
                  c2=2*(1:n))

wideByFactor(x=tmp, factor="f1", common=c("c1", "c2", "f2"))
wideByFactor(x=tmp, factor="f1", common=c("c1", "c2"))

Run the code above in your browser using DataLab