小编Sea*_* Mc的帖子

R:igraph,社区检测,edge.betweenness方法,每个社区的计数/列表成员?

我有一个相对较大的顶点图:524边:1125,是真实世界的交易.边缘是直的并且具有重量(包含是可选的).我正在尝试调查图中的各个社区,并且基本上需要一种方法:

- 计算所有可能的社区

- 计算最佳社区数量

- 返回每个(最佳)社区的成员/成员数量

到目前为止,我已经设法将以下代码汇总在一起,绘制了与各种社区相对应的颜色编码图,但是我不知道如何控制社区的数量(即绘制成员数最多的前5个社区)或列出特定社区的成员.

library(igraph)
edges <- read.csv('http://dl.dropbox.com/u/23776534/Facebook%20%5BEdges%5D.csv')
all<-graph.data.frame(edges)
summary(all)

all_eb <- edge.betweenness.community(all)
mods <- sapply(0:ecount(all), function(i) {
all2 <- delete.edges(all, all_eb$removed.edges[seq(length=i)])
cl <- clusters(all2)$membership
modularity(all, cl)
})


plot(mods, type="l")

all2<-delete.edges(all, all_eb$removed.edges[seq(length=which.max(mods)-1)])

V(all)$color=clusters(all2)$membership

all$layout <- layout.fruchterman.reingold(all,weight=V(all)$weigth)

plot(all, vertex.size=4, vertex.label=NA, vertex.frame.color="black", edge.color="grey",
edge.arrow.size=0.1,rescale=TRUE,vertex.label=NA, edge.width=.1,vertex.label.font=NA)
Run Code Online (Sandbox Code Playgroud)

因为边缘介于中间方法执行得很差,我再次使用walktrap方法尝试:

all_wt<- walktrap.community(all, steps=6,modularity=TRUE,labels=TRUE)
all_wt_memb <- community.to.membership(all, all_wt$merges, steps=which.max(all_wt$modularity)-1)


colbar <- rainbow(20)
col_wt<- colbar[all_wt_memb$membership+1]

l <- layout.fruchterman.reingold(all, niter=100)
plot(all, layout=l, vertex.size=3, vertex.color=col_wt, vertex.label=NA,edge.arrow.size=0.01,
                    main="Walktrap Method")
all_wt_memb$csize
[1] 176  13 204  24   9 263 …
Run Code Online (Sandbox Code Playgroud)

modularity r igraph

9
推荐指数
1
解决办法
7952
查看次数

R:按ID聚合并查找最小日期和时间

我是R初学者,并且遇到以下非常简单的问题时遇到困难; 我有以下交易数据:

Data
Row#ID     Lable    Date          Time
4   15275   John    2000-05-16    16:15:00
7   15275   John    2000-05-16    16:25:00
22  15276   Bob     2000-07-04    18:05:00
25  15276   Bob     2000-08-07    05:23:00
10  1234    Kate    2000-06-17    18:07:00
13  1234    Kate    2000-06-21    06:49:00 
Run Code Online (Sandbox Code Playgroud)

并且需要为每个ID生成具有最小日期和最小时间的唯一条目,类似于:

Row#    ID          Lable   Date        Time
        15275   John        2000-05-16  16:15:00
        15276   Bob         2000-07-04  18:05:00
        1234    Kate        2000-06-17  18:07:00
Run Code Online (Sandbox Code Playgroud)

我试过了

unique<-aggregate(Date$Date ,list(Data$ID, Data$Time,unique_Data$Lable ), min)
Run Code Online (Sandbox Code Playgroud)

无济于事.

任何帮助将不胜感激.谢谢

time aggregate r date unique

2
推荐指数
1
解决办法
7592
查看次数

标签 统计

r ×2

aggregate ×1

date ×1

igraph ×1

modularity ×1

time ×1

unique ×1