Remodelar dados longos para amplos em R [duplicado]
Esta pergunta já tem uma resposta aqui:
Como remodelar dados de formato longo para amplo? 9 respostasEstou tentando remodelar alguns dados do usuário em R. Eu tenho um data.frame de IDs de sessão. Cada sessão tem um User_ID e data. Eu gostaria de usar a variável "User_ID" como minha "Chave", mas apenas para as observações que têm "userType" de "New Visitor". Portanto, haverá uma única linha para cada "Novo visitante". Em seguida, passe cada ID de sessão subsequente como variável separada. Por exemplo, se um ID de usuário tiver 3 IDs de sessão no total, haveria um total de 6 variáveis:
Por exemplo, se este é o quadro de dados para um usuário:
date <- c('2015-01-01','2015-01-02','2015-01-02','2015-01-10')
userID <- c('100105276','100105276','100105276','100105276')
sessionID <- c('1452632119','1452634303','1452637067','1453600979')
userType <- c('New Visitor','Returning Visitor','Returning Visitor','Returning Visitor')
df <- cbind(date,userID,sessionID,userType)
Em vez disso, gostaria de retornar isso:
userID sessionID1 date1 SessionID2 date2 SesionID3 date3
100105276 1452632119 2015-01-01 1452634303 2015-01-02 100105276 2015-01-02
Se houver algum ID do usuário que não tenha os IDs da sessão subsequentes, um valor "na" será passado onde as variáveis estão com valores ausentes. Eu li sobre o uso do tidyr ou do remodelar2 para fazer isso, mas não consegui fazê-los fazer exatamente o que estou procurando.