使用 networkD3 的桑基图 - 创建链接
Sankey Chart with networkD3 - Creating Links
我正在尝试开发桑基图来可视化网站上的客户旅程。我的数据有两个字段:Session_ID
和 Page_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
您可以使用 dplyr
执行此操作 - 由于页面按访问顺序排列,您可以使用 lead()
获取下一页:
library(dplyr)
test_data %>%
group_by(session) %>%
mutate(next_page = lead(page)) %>%
ungroup() %>%
count(page, next_page) %>%
filter(! is.na(next_page))
我正在尝试开发桑基图来可视化网站上的客户旅程。我的数据有两个字段:Session_ID
和 Page_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
您可以使用 dplyr
执行此操作 - 由于页面按访问顺序排列,您可以使用 lead()
获取下一页:
library(dplyr)
test_data %>%
group_by(session) %>%
mutate(next_page = lead(page)) %>%
ungroup() %>%
count(page, next_page) %>%
filter(! is.na(next_page))