使用 networkD3 包中的 sankeyPlot() 重构 Sankey 图的数据输入

Reframe the data input for Sankey diagrams using sankeyPlot() in networkD3 package

我正在尝试使用 networkD3 包中的 sankeyPlot() 绘制 Sankey 图。可视化效果非常适用于示例数据,例如

节点

node
1124107186
1124132760
1124119016
20150517
/matte-low-dome-49354
/accounts/account-order-list.html
/Stepp

和链接

 source target   value
0        3       5
1        3       9
2        3       1
3        4       6
3        5       12
3        6       8

但是很难从格式为

的 csv 文件中准备 link table
       URI                          DATE_KEY    TIME_KEY GUID_KEY
/matte-low-dome-49354               20150517    145755  1124107186
/matte-low-dome-49355               20150517    145755  1124107186
/accounts/account-order-list.html   20150517    143857  1124132760
/accounts/account-order-list.html   20150517    143857  1124132760
/Stepp                              20150517    143416  1124119016
/Stepp                              20150517    143415  1124119016
/platinum-47184                     20150517    145637  1124107186

是否有可重复的方法来为此类数据集准备源、目标行号?

我在 Excel 中找到了一种使用 vlookup 和 pivot 的方法。我使用 row()

为每个唯一变量条目分配了行号
variable          row
20150517           1
20150518           2
/platinum-47184    3

并在另一个 table 中使用其名称进行了 vlookup,从而以序列号的形式获取源和目标。然后我 运行 一个枢轴来获取每个唯一变量组合的计数,像这样,

 source                              target   value
/matte-low-dome-49354               20150517    12 
/matte-low-dome-49355               20150517    6

我能够将其用作制作桑基图的输入。

这不是一种非常可编程的方式,但它可以达到目的。