spread

From tidyr v0.1
0th

Percentile

Spread a key-value pair across multiple columns.

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.
Aliases
  • spread
Examples
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)
Documentation reproduced from package tidyr, version 0.1, License: MIT + file LICENSE

Community examples

rachhpal1176 at Jan 30, 2019 tidyr v0.8.2

student <- c('Gurnoor', 'Gurnoor', 'Gurnoor', 'Gurnoor', 'Gurnoor', 'Gurnoor', 'Dhruv', 'Dhruv', 'Dhruv', 'Dhruv', 'Dhruv', 'Dhruv') subject <- c('English', 'Hindi', 'Punjabi', 'Maths', 'Science', 'Social Science', 'English', 'Hindi', 'Punjabi', 'Maths', 'Science', 'Social Science') marks <- as.character ( c('38/40', '40/40', '32/40', '29/40', '27/40', '35/40', '30/40', '33/40', '36/40', '31/40', '39/40', '34/40') ) reportCard_Nov18 <- data.frame(Student = student, Subject = subject, Marks = marks) reportCard_Nov18.wide <- reportCard_Nov18 %>% spread(Student, Marks) reportCard_Nov18.wide