我想在R中創建一個函數「f」,它在條目中包含個人和個人之間的邊緣data.frame(例如稱爲A2),並返回另一個只有A2的「祖先」和「孩子」以及祖先和孩子的祖先的數據框架!R中的函數返回網絡中的祖先和孩子
爲說明我的複雜的問題:
library(visNetwork)
nodes <- data.frame(id = c(paste0("A",1:5),paste0("B",1:3)),
label = c(paste0("A",1:5),paste0("B",1:3)))
edges <- data.frame(from = c("A1","A1","A2","A3","A4","B1","B2"),
to = c("A2","A3","A4","A4","A5","B3","B3"))
visNetwork(nodes, edges) %>%
visNodes(font = list(size=45)) %>%
visHierarchicalLayout(direction = "LR", levelSeparation = 500)
在這個例子中,包含data.frame 2個不同獨立的網絡:1個網絡與 「A」 S和其他與 「B」 S 。
我想實現函數f(數據=邊緣,逐張=「A2」),它返回其包含涉及的「A」 S網絡data.frame邊緣的所有行一個data.frame:
F(邊,「A2」)將返回該提取物data.frame邊緣
head(f(edges,"A2"))
# from to
#1 A1 A2
#2 A1 A3
#3 A2 A4
#4 A3 A4
#5 A4 A5
我希望這是很清楚的,你來幫我。
非常感謝!
你試過了什麼?你試圖實現的算法是什麼? –
不確定要確切地理解你想要的東西,但其目標實際上是爲每個個體返回它的祖先和子女以及他們的子女和祖先的祖先的子女。在花時間(當然是數小時)編寫代碼之前,我想知道是否有一個衆所周知的函數/程序包來做這件事,因爲在我看來,它可能是一個非常基本的問題(不像我),他們習慣於與網絡一起工作。但是我沒有在互聯網上找到滿意的東西(僅適用於樹木),所以我想問更多的專業人士!謝謝 – antuki
我不是圖形分析師,但也許這可能有所幫助:http://igraph.org/r/doc/components.html – romles