【发布时间】:2016-03-01 18:28:27
【问题描述】:
我正在尝试重塑 R 中的一些用户数据。我有一个会话 ID 的 data.frame。每个会话都有一个 User_ID 和日期。我想使用“User_ID”变量作为我的“Key”,但仅用于具有“New Visitor”的“userType”的观察。因此,每个“新访客”都会有一行。然后将每个后续会话 ID 作为单独的变量传递。例如,如果一个 User ID 总共有 3 个 Session ID,那么总共会有 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
如果有任何 userID 没有后续 sessionID,则在变量缺失值的情况下将传递一个“na”值。我已经阅读了使用 tidyr 或 reshape2 来做到这一点,但我无法让他们完全按照我的要求去做。
【问题讨论】:
-
为什么要删除最后一个回访者行?
-
我不想放弃它。我只是试图将示例保留在浏览器中的单行上。我想要每个新用户的所有会话。