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我们可以将“数字”列“扩展”为单独的列:
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
或将“名称”列分散到单独的列中:
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