如何创建igraph objetcs列表

时间:2015-07-13 19:51:06

标签: list loops igraph

我有许多igraph objetcs,我想创建一个列表,以便在循环中使用它。我知道我试图生成的列表是objetcs的名称列表,所以我的循环不起作用。如何创建igraph objetcs列表?

1 个答案:

答案 0 :(得分:1)

最简单的方法是将网络拆分为一个列表,每个社区的唯一值都有一个元素,然后将图形构建代码应用于每个部分,将每个部分的结果存储在另一个列表中。在R中有几种方法可以做这种事情,其中​​一种方法是使用 " lapply"

#Break net into pieces based on unique values of community
netSplit <- split(net,net$community)

#Define a function to apply to each element of netSplit
myFun <- function(dataPiece){
    netEdges <- NULL

    for (idi in c("nom1", "nom2", "nom3")) {
        netEdge <- dataPiece[c("id", idi)]
        names(netEdge) <- c("id", "friendID")
        netEdge$weight <- 1
        netEdges <- rbind(netEdges, netEdge)
    }

    g <- graph.data.frame(netEdges, directed=TRUE)
    #This will return the graph itself; you could change the function
    # to return other values calculated on the graph
    g
}

将您的函数应用于数据的每个子集(片段):

结果&lt; - lapply(netSplit,FUN = myFun)