我有会话ID的页面访问列表。我需要将其修改为每个页面的两个页面,在列表中重复,直到它们全部被使用。 ID将在新行中重复。我还需要保留先前节点以使用新节点。
我想转此:
Session Page
ID1 Home
ID1 Inventory
ID1 Details
ID1 Home
ID2 Inventory
ID2 Home
ID2 Details
ID2 Inventory
ID3 Inventory
ID3 Details
ID4 Details
ID4 Inventory
ID4 Details
ID4 Inventory
ID4 Details
ID4 Inventory
ID4 Details
ID4 Inventory
ID4 Home
进入这个:
Session Node1 Node2
ID1 Home Inventory
ID1 Inventory Vehicles
ID1 Vehicle Home
ID2 Inventory Home
ID2 Home Vehicle
ID2 Vehicle Inventory
ID3 Inventory Vehicle
ID4 Vehicle Inventory
ID4 Inventory Vehicle
ID4 Vehicle Inventory
ID4 Inventory Vehicle
ID4 Vehicle Inventory
ID4 Inventory Vehicle
ID4 Vehicle Inventory
ID4 Inventory Home
最终目标是将其提供到igraph中以制作活动的网络图。如果有意义,会话中可以有多达44个不同的页面访问。
答案 0 :(得分:1)
假设Vehicle为Details,您的数据存储在mydata
library(data.table)
setDT(mydata)
mydata[, Node2 := Page[.I + 1]]
mydata[, t := Session[.I + 1]]
mydata[Session == t, list(Session,Node1 = Page,Node2)]