See this example
data <- data.frame(x = c("a", "a", "b", "b"), y = c("c", "d", "c", "d"), z = c("w", "x", "y", "z"))
spread.factor <- data %>% spread(x, z)
data$z <- as.integer(data$z)
spread.integer <- data %>% spread(x, z)
str(spread.factor)
str(spread.integer)