r - 从数据框中获取点击流序列
问题描述
我有一个.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
我正在尝试clickstream
在 R 中使用包进行分析。这个包需要我们把上面的数据转换成这种格式:
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]
投射你的数据表:
> 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
.
推荐阅读
- wordpress - 更新 Woocommerce 订阅订单项元数据
- gcc - 使用cmake时如何将VS2017指向(arm-none-eabi-)gcc默认标头
- java - 如何在 GET 请求中排除其他类对象?- Java 春季启动
- python - 使用 Pyinstaller 转换为 Windows 的独立 Python 应用程序可以工作,但需要 23 秒才能启动
- spotfire - 如何使用属性控制作为 bin pruner
- java - Java:在定制的通用向量中间插入元素
- php-extension - 无法在 xampp php 7.3.2 中启用 php_intl.dll
- mysql - 为什么 GROUP_CONCAT 让我的查询更快?
- reactjs - Highcharts 对官方库的反应不能很好地与 Typescript 配合使用
- java - 此 Java 代码中的漏洞是什么?