使用R创建网络

时间:2013-11-27 23:49:32

标签: r networking graph igraph

我需要使用R创建节点的实例,但我还需要存在节点的某些属性:

  1. 节点有多少连接/链接(即它有多少邻居)
  2. 这些连接是什么(例如,如果节点是1并且连接到节点2,则它必须是属性)
  3. 需要为节点设置一个值(0或1)
  4. 此外,如何使用循环创建此节点的更多实例,但具有相同属性的不同值。

    我花了好几个小时寻找解决方案,尝试了很多套餐,但总是有问题。

    请有人建议解决方案并提供尽可能完整的示例吗?

    非常感谢提前。

1 个答案:

答案 0 :(得分:3)

使用类似igraph库的东西可能会在这里运作良好。 e.g:

创建一个包含节点之间关系的data.frame

node.data <- data.frame(
    one=c("a","a","b"),
    two=c("b","c","c")
  )

根据数据制作图表/网络

g <- graph.data.frame(
  node.data,
  directed=FALSE # make this true if your network has a direction in the links
)
plot(g)

enter image description here

为每个顶点(节点)添加值

g <- set.vertex.attribute(g,"value",value=c(1,0,0))

然后可以检索这些:

get.vertex.attribute(g,"value")
#[1] 1 0 0

要使其适应随机生成网络,您可以使用sample函数。

E.g。使用类似......的东西。

one=sample(letters[1:10],100,replace=TRUE)

... data.frame调用内部将允许您随机生成链接。同样可以应用于生成顶点属性,如...

sample(0:1,100,replace=TRUE)