R espalhando várias colunas com tidyr [duplicado]

Esta pergunta já tem uma resposta aqui:

Como espalhar medidas repetidas de várias variáveis em um formato amplo? 4 respostas

Pegue esta variável de exemplo

df <- data.frame(month=rep(1:3,2),
                 student=rep(c("Amy", "Bob"), each=3),
                 A=c(9, 7, 6, 8, 6, 9),
                 B=c(6, 7, 8, 5, 6, 7))

Eu posso usarspread a partir detidyr para alterar isso para o formato ampl

> df[, -4] %>% spread(student, A)
  month Amy Bob
1     1   9   8
2     2   7   6
3     3   6   9

Mas como posso espalhar dois valores, p. ambosA eB, de modo que a saída seja algo como

  month Amy.A Bob.A Amy.B Bob.B
1     1     9     8     6     5
2     2     7     6     7     6
3     3     6     9     8     7

questionAnswers(1)

yourAnswerToTheQuestion