我想在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