Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:绘制著名的“地图”;“6度分离”;(凯文·培根)_R_Graph_Nodes_Edges_Subgraph - Fatal编程技术网

R:绘制著名的“地图”;“6度分离”;(凯文·培根)

R:绘制著名的“地图”;“6度分离”;(凯文·培根),r,graph,nodes,edges,subgraph,R,Graph,Nodes,Edges,Subgraph,我试图写一些R代码来显示朋友之间的分离程度。也就是说,假设我选择箭头指向的“节点”,我说“度=3”,我希望能够识别该网络中的以下路径: 我想我在stackoverflow上找到了一篇文章,回答了一个类似的问题: 假设我创建了一些虚假的网络数据: library(igraph) file <-data.frame( "source" = c( "John", "John",

我试图写一些R代码来显示朋友之间的分离程度。也就是说,假设我选择箭头指向的“节点”,我说“度=3”,我希望能够识别该网络中的以下路径:

我想我在stackoverflow上找到了一篇文章,回答了一个类似的问题:

假设我创建了一些虚假的网络数据:

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