我有下面的資料框:
dummy<-structure(list(Name = c("A", "B", "C", "A", "B", "C"), `#BISB` = c(2,
6, 4, 0, 4, 6), `#BISC` = c(2, 6, 4, 0, 4, 6)), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
我已經創建了它的節點檔案
nodes<-structure(list(id = c(1, 2, 3, 4, 5), group = c("A", "B", "C",
"#BISB", "#BISC")), class = "data.frame", row.names = c(NA, -5L
))
現在給出來自這 2 個 dfs 的資訊,我想edges根據dummy每個Name( A,B,C) 連接到不同部門 ( #BISB,#BISC)的資料幀邏輯創建資料幀,title并具有邊緣和label相對值。它會像:
from to label arrows title length
1 1 4 2 to 2 300
2 1 5 2 to 2 300
3 1 4 0 to 0 300
4 1 5 0 to 0 300
5 2 4 6 to 6 300
6 2 5 6 to 6 300
7 2 4 4 to 4 300
8 2 5 4 to 4 300
9 3 4 4 to 4 300
10 3 5 4 to 4 300
11 3 4 6 to 6 300
12 3 5 6 to 6 300
>
uj5u.com熱心網友回復:
我不確定您想要的輸出中的所有值來自哪里......但我相信這是一個很好的起點。
library(data.table)
setDT(dummy)
setDT(nodes)
ans <- melt(dummy, id.vars = "Name", variable.factor = FALSE, value.name = "arrows")
ans[nodes, from := i.id, on = .(Name = group)]
ans[nodes, to := i.id, on = .(variable = group)]
# Name variable arrows from to
# 1: A #BISB 2 1 4
# 2: B #BISB 6 2 4
# 3: C #BISB 4 3 4
# 4: A #BISB 0 1 4
# 5: B #BISB 4 2 4
# 6: C #BISB 6 3 4
# 7: A #BISC 2 1 5
# 8: B #BISC 6 2 5
# 9: C #BISC 4 3 5
#10: A #BISC 0 1 5
#11: B #BISC 4 2 5
#12: C #BISC 6 3 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/378691.html
標籤:r
上一篇:展開表格并填空r
下一篇:為什么資料框的列名會自動更改?
