R:绘制著名的“地图”;“6度分离”;(凯文·培根)
我试图写一些R代码来显示朋友之间的分离程度。也就是说,假设我选择箭头指向的“节点”,我说“度=3”,我希望能够识别该网络中的以下路径: 我想我在stackoverflow上找到了一篇文章,回答了一个类似的问题: 假设我创建了一些虚假的网络数据:R:绘制著名的“地图”;“6度分离”;(凯文·培根),r,graph,nodes,edges,subgraph,R,Graph,Nodes,Edges,Subgraph,我试图写一些R代码来显示朋友之间的分离程度。也就是说,假设我选择箭头指向的“节点”,我说“度=3”,我希望能够识别该网络中的以下路径: 我想我在stackoverflow上找到了一篇文章,回答了一个类似的问题: 假设我创建了一些虚假的网络数据: library(igraph) file <-data.frame( "source" = c( "John", "John",
library(igraph)
file <-data.frame(
"source" = c(
"John",
"John",
"Tim",
"Tim",
"Alex",
"Andrew",
"Andrew",
"Andrew",
"Oliver",
"Oliver",
"Oliver",
"Matt",
"Steven",
"Steven",
"Steven",
"Matt",
"Charles",
"Charles",
"Charles",
"Sean",
"Ted",
"Ryan",
"Ryan",
"Ryan",
"Ted",
"Phil",
"Phil",
"Phil",
"Sam",
"Toby",
"Toby",
"Donald",
"Donald",
"Donald",
"Mitch",
"Mitch",
"Mitch"),
"target" = c("Sam",
"Tim",
"Alex",
"Matt",
"Andrew",
"Sean",
"Peter",
"Ben",
"Kevin",
"Thomas",
"Dave",
"Steven",
"Kenny",
"Derek",
"CJ",
"Charles",
"Ivan",
"Kyle",
"Andrew",
"Ted",
"Ryan",
"Daniel",
"Chris",
"Scott",
"Phil",
"Henry",
"George",
"Paul",
"Toby",
"Donald",
"Mitch",
"Jack",
"Luke",
"Myles",
"Elliot",
"Harvey",
"Owen")
)
graph <- graph.data.frame(file, directed=F)
graph <- simplify(graph)
plot(graph)
库(igraph)
file您的代码可以正常工作,但我认为使用邻域
是不可取的。相反,使用它可能更好
distan <- 3
subnetwork <- induced.subgraph(graph, unlist(ego(graph, order=3, nodes="John")))
安德鲁的朋友最多。谢谢!你能看看这个问题吗:这是否意味着第一个社区意义重大?谢谢你谢谢你。。。最后一个问题:假设有3个社区。有没有办法找出哪个社区是最“重要的”?你必须定义重要性-我不认为有一个单一的定义。它可能是最大的社区,但也可能有一个小社区将两个较大社区连接在一起的图表。小的一个对维持通信很重要。D=度(图)。。。有没有更好的方法来组织这件事?度=表(度(图))。。。有办法把“D”排序吗?当然。简单地排序(D)
distan <- 3
subnetwork <- induced.subgraph(graph, unlist(ego(graph, order=3, nodes="John")))
degree(graph)
John Tim Alex Andrew Oliver Matt Steven Charles Sean Ted
2 3 2 5 3 3 4 4 2 3
Ryan Phil Sam Toby Donald Mitch Peter Ben Kevin Thomas
4 4 2 3 4 4 1 1 1 1
Dave Kenny Derek CJ Ivan Kyle Daniel Chris Scott Henry
1 1 1 1 1 1 1 1 1 1
George Paul Jack Luke Myles Elliot Harvey Owen
1 1 1 1 1 1 1 1