R Language Reshape using tidyr Reshape from long to wide format with spread()

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Insert
> Step 2: And Like the video. BONUS: You can also share it!

Example

library(tidyr)

## example data
set.seed(123)
df <- data.frame(
  name = rep(c("firstName", "secondName"), each=4),
  numbers = rep(1:4, 2),
  value = rnorm(8)
)
df
#         name numbers       value
# 1  firstName       1 -0.56047565
# 2  firstName       2 -0.23017749
# 3  firstName       3  1.55870831
# 4  firstName       4  0.07050839
# 5 secondName       1  0.12928774
# 6 secondName       2  1.71506499
# 7 secondName       3  0.46091621
# 8 secondName       4 -1.26506123

We can "spread" the 'numbers' column, into separate columns:

spread(data = df,
       key = numbers,
       value = value)
#      name          1          2         3           4
# 1  firstName -0.5604756 -0.2301775 1.5587083  0.07050839
# 2 secondName  0.1292877  1.7150650 0.4609162 -1.26506123

Or spread the 'name' column into separate columns:

spread(data = df, 
       key = name,
       value = value)
#   numbers   firstName secondName
# 1       1 -0.56047565  0.1292877
# 2       2 -0.23017749  1.7150650
# 3       3  1.55870831  0.4609162
# 4       4  0.07050839 -1.2650612


Got any R Language Question?