You probably want to use table
rather than aggregate
.
d <- read.table(text='x y
served 4d0e1e88-60a4-4e9e-f914-50fab6039d73
close 6ad31901-ed0d-4a12-a686-962bbd473018
served 6ad31901-ed0d-4a12-a686-962bbd473018
switchProduct 6ad31901-ed0d-4a12-a686-962bbd473018
served 6ad31901-ed0d-4a12-a686-962bbd473018
switchProduct 6ad31901-ed0d-4a12-a686-962bbd473019
switchProduct 6ad31901-ed0d-4a12-a686-962bbd473018
Click 6ad31901-ed0d-4a12-a686-962bbd473018
switchProduct 6ad31901-ed0d-4a12-a686-962bbd473018
Click 6ad31901-ed0d-4a12-a686-962bbd473014', header=TRUE)
t(table(d))
x
y Click close served switchProduct
4d0e1e88-60a4-4e9e-f914-50fab6039d73 0 0 1 0
6ad31901-ed0d-4a12-a686-962bbd473014 1 0 0 0
6ad31901-ed0d-4a12-a686-962bbd473018 1 1 2 3
6ad31901-ed0d-4a12-a686-962bbd473019 0 0 0 1