tidyr (version 0.1)

spread: Spread a key-value pair across multiple columns.

Description

Spread a key-value pair across multiple columns.

Usage

spread(data, key, value, fill = NA, convert = FALSE)

Arguments

key,value
Bare (unquoted) names of key and value columns.
data
A data frame.
fill
If there isn't a value for every combination of the other variables and the key column, this value will be substituted.
convert
If TRUE, type.convert with asis = TRUE will be run on each of the new columns. This is useful if the value column was a mix of variables that was coerced to a string.

Examples

Run this code
library(dplyr)
stocks <- data.frame(
  time = as.Date('2009-01-01') + 0:9,
  X = rnorm(10, 0, 1),
  Y = rnorm(10, 0, 2),
  Z = rnorm(10, 0, 4)
)
stocksm <- stocks %>% gather(stock, price, -time)
stocksm %>% spread(stock, price)
stocksm %>% spread(time, price)

# Spread and gather are complements
df <- data.frame(x = c("a", "b"), y = c(3, 4), z = c(5, 6))
df %>% spread(x, y) %>% gather(x, y, a:b, na.rm = TRUE)

Run the code above in your browser using DataLab