Изменение формы данных от длинных до широких в R [дубликаты]

На этот вопрос уже есть ответ здесь:

Как изменить данные из длинного в широкий формат? 9 ответов

Я пытаюсь изменить некоторые пользовательские данные в R. У меня есть data.frame идентификаторов сеансов. Каждый сеанс имеет идентификатор пользователя и дату. Я хотел бы использовать переменную "User_ID" в качестве моего "Ключа", но только для наблюдений, которые имеют "userType" из "New Visitor". Поэтому для каждого «Нового посетителя» будет по одной строке. Затем передайте каждый последующий идентификатор сеанса как отдельную переменную. Например, если у идентификатора пользователя всего 3 идентификатора сеанса, всего будет 6 переменных:

Например, если это фрейм данных для пользователя:

    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)

Вместо этого я хотел бы вернуть это:

    userID      sessionID1  date1      SessionID2  date2      SesionID3 date3
    100105276   1452632119  2015-01-01 1452634303  2015-01-02 100105276 2015-01-02

Если есть какие-либо идентификаторы пользователя, которые не имеют последующих идентификаторов сессии, будет передано значение «na», если переменные являются пропущенными значениями. Я читал об использовании tidyr или reshape2 для этого, но я не смог заставить их делать именно то, что я ищу.

Ответы на вопрос(1)

Ваш ответ на вопрос