Изменение формы данных от длинных до широких в 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 для этого, но я не смог заставить их делать именно то, что я ищу.