【发布时间】:2021-10-24 14:30:03
【问题描述】:
我需要在 R 和 plotly 中创建 3 年以上的 sankey 图。我的group 列应该是节点(1 == worst,2 == bad,3 == good 和 4 == best),但是在2019 年和 2020 年我有/需要一个额外的节点 5 == not available。
我的数据非常大,所以我只给你看一个简短的sn-p:
dt.2018 <- structure(list(Year = c(2018L, 2018L, 2018L, 2018L, 2018L, 2018L,
2018L, 2018L, 2018L, 2018L), GPNRPlan = c(100236L, 101554L, 111328L,
124213L, 127434L, 128509L, 130058L, 130192L, 130224L, 130309L
), TB.Info = c("Below TB", "Over TB", "In TB", "In TB", "In TB",
"Below TB", "Over TB", "Below TB", "Below TB", "Below TB"), Qeff = c(-0.01,
0, 0, 0, 0, 0, 0, 0, -0.01, -0.01), group = c(1, 1, 3, 4, 2,
2, 1, 4, 2, 3)), class = c("data.table", "data.frame"), row.names = c(NA,
-10L))
dt.2019 <- structure(list(Year = c(2019L, 2019L, 2019L, 2019L, 2019L, 2019L,
2019L, 2019L, 2019L, 2019L), GPNRPlan = c(100236L, 101554L, 111328L,
124213L, 127434L, 128003L, 128509L, 130058L, 130192L, 130351L
), TB.Info = c("Below TB", "Over TB", "In TB", "In TB", "In TB",
"Over TB", "In TB", "Over TB", "Below TB", "Over TB"), Qeff = c(-0.01,
0.04, -0.01, 0, 0, 0, 0, 0, 0, 0), group = c(1, 2, 3, 1, 2, 4,
1, 1, 3, 2)), class = c("data.table", "data.frame"), row.names = c(NA,
-10L))
dt.2020 <- structure(list(Year = c(2020L, 2020L, 2020L, 2020L, 2020L, 2020L,
2020L, 2020L, 2020L, 2020L), GPNRPlan = c(100236L, 111328L, 128003L,
130058L, 130192L, 133874L, 135886L, 137792L, 138153L, 142309L
), TB.Info = c("Below TB", "In TB", "Over TB", "Below TB", "Below TB",
"Over TB", "Below TB", "Over TB", "Over TB", "In TB"), Qeff = c(0,
-0.01, 0, 0, -0.01, 0.02, -0.01, -0.01, 0.01, 0), group = c(2,
3, 1, 4, 2, 3, 1, 1, 2, 4)), class = c("data.table", "data.frame"
))
现在我想查看 2018 的哪些客户(客户 ID == GPNRPlan)在 2019 中仍属于同一组或已更改组,以及他们是否已不在2019,则应参考群组5,也称为not available。从 2019 到 2020 也应该如此。
这怎么可能?
是否可以在同一个桑基图中从 2018 到 2020?
所以我的这个示例的桑基图看起来像这样(手工制作):
【问题讨论】:
标签: r data.table plotly r-plotly sankey-diagram