我的列排列如下:
Product: Charge:
P1 C1
P1 C2
P2 C1
P2 C3
P3 C2
我需要显示一个树形图,设置第一个产品 P1,然后显示附加到该产品的所有费用(p1 - c1 和 p1 到 c2),然后下一个象限显示附加到这些费用 c1 和 c2 的产品。然后下一个象限显示这些产品所附加的费用等等,直到没有更多的关系可以添加。
FromDataFrameNetwork 不起作用,因为它说找不到根名称。网络不是树。请帮忙。
参见上面的解释。
您可以像下面这样使用
igraph
library(igraph)
g <- graph_from_data_frame(df, directed = FALSE)
setNames(
do.call(
rbind,
lapply(
all_shortest_paths(g,
from = "P1",
to = V(g)[degree(g) == 1]
)$vpath,
\(x) {
as.data.frame(embed(names(x), 2)[, 2:1])
}
)
),
c("from", "to")
)
你将获得
from to
1 P1 C2
2 C2 P3
3 P1 C1
4 C1 P2
5 P2 C3