我有许多igraph objetcs,我想创建一个列表,以便在循环中使用它。我知道我试图生成的列表是objetcs的名称列表,所以我的循环不起作用。如何创建igraph objetcs列表?
答案 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)