从数据框中获取点击流序列

Getting clickstream sequence from data frame

我有一个点击流 .csv 这种格式的数据文件:

     Step_Name   Session_ID
        p-1          1
        p-2          1
        defer        1
        p-1          2
        p-3          2
        buy          2
        p-4          3 
        defer        3

我正在尝试使用 R 中的 clickstream 包进行分析。这个包需要我们把上面的数据转换成这样的格式:

   1    p-1    p-2    defer
   2    p-1    p-3    buy 
   3    p-4    defer   

其中第一列是会话 ID,每个会话的列数可能会有所不同,具体取决于网站用户执行的步数。如何将初始数据转换为上述格式(excel 或 R)?

此外,如果有其他方法可以在不进行此类数据操作的情况下分析 R 中的点击流数据,请告诉我。

使用 data.table,加载您的数据:

> library(data.table)
> df = data.table('Step_Name' = c('p-1', 'p-2', 'defer','p-1','p-3','buy','p-4','defer'), 'Session_ID' = c(rep(1,3),rep(2,3),rep(3,2)))
> df
   Step_Name Session_ID
1:       p-1          1
2:       p-2          1
3:     defer          1
4:       p-1          2
5:       p-3          2
6:       buy          2
7:       p-4          3
8:     defer          3

添加一个行号 ID,为每个新的 Session_ID 重新启动。

> df[, id := seq_len(.N), by = Session_ID]

投出你的数据table:

> df_final = dcast(df, Session_ID ~ id, value.var = 'Step_Name')

你想要的结果:

> df_final
   Session_ID   1     2     3
1:          1 p-1   p-2 defer
2:          2 p-1   p-3   buy
3:          3 p-4 defer  <NA>

注意:这取决于您的数据在 Session_ID 内是否有序。