我正在尝试了解多个网站上的跨域行为。我有此信息
Website ClientID SessionId
-------------------------------------
domain1 xxx d.0686
domain2 xxx d.0686
domain3 yyy f.1871
domain2 yyy f.1871
domain4 yyy f.1871
domain1 zzz n.9210
domain2 zzz n.9210
人们可以在多个网站上移动,但是他们保留ClientID(存储为cookie)和SessionID(当一个人从一个域移动到另一个域时,在不同网站之间共享)。
我需要查看两个不同的网站共享多少SessionID。我猜最简单的方法是创建一个计算共享的唯一SessionId的矩阵。这将是基于上表的结果
Domain1 Domain2 Domain3 Domain4
--------------------------------------------------------
domain1 0 2 0 0
domain2 2 0 1 1
domain3 0 1 0 0
domain4 0 1 0 0
这样,我可以计算出在同一sessionID中使用两个不同网站的次数,并使用circlize()
包创建一个Chord Diagram来可视化该关系。
有可能在R上做到吗?
答案 0 :(得分:0)
domains <- unique(information$Website)
output <- matrix(0, length(domains), length(domains))
colnames(output) <- rownames(output) <- domains
for (x in domains) {
X <- unique(information[information$Website == x, 'SessionId'])
for (y in domains) {
Y <- unique(information[information$Website == y, 'SessionId'])
output[rownames(output) == x, y] <- length(intersect(X, Y))
}
}
print(output)
#domain1 domain2 domain3 domain4
#domain1 2 2 0 0
#domain2 2 3 1 1
#domain3 0 1 1 1
#domain4 0 1 1 1
information <- structure(list(Website = c("domain1", "domain2", "domain3", "domain2", "domain4",
"domain1", "domain2"),
ClientID = c("xxx", "xxx", "yyy", "yyy", "yyy", "zzz", "zzz"),
SessionId = c("d.0686", "d.0686", "f.1871", "f.1871", "f.1871",
"n.9210", "n.9210")),
.Names = c("Website", "ClientID", "SessionId"),
row.names = c(NA, -7L), class = "data.frame")