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