具有networkD3的Sankey图表-创建链接

时间:2019-05-17 05:09:21

标签: r sankey-diagram htmlwidgets networkd3

我正在尝试开发一个sankey图表,以可视化网站上的客户旅程。我的数据有两个字段:Session_IDPage_Name。我设置了页面深度限制,每个会话最多6页。

我能够创建节点,但无法创建链接。链接的形式必须是(来源,目标,频率)。下面是我的数据结构:

test_data = data.frame(session = rep(1:4, each = 4),
                       page = c("a","b","c","d", "a","c","d","e","a","b","d","c","a","d","e","f"))

这应该是最终数据:

a,b,2
b,c,1
c,d,2
a,c,1
d,e,2
b,d,1
d,c,1
a,d,1
d,f,1

1 个答案:

答案 0 :(得分:2)

您可以使用dplyr进行此操作-由于页面是按访问顺序排列的,因此您可以使用lead()来获取下一页:

library(dplyr)

test_data %>%
    group_by(session) %>%
    mutate(next_page = lead(page)) %>%
    ungroup() %>%
    count(page, next_page) %>%
    filter(! is.na(next_page))