[R] igraph: Turn multiple edges into weights
Rui Barradas
ruipbarradas at sapo.pt
Wed Aug 15 13:43:06 CEST 2012
Hello,
There is a function count.multiple that can be used to do what you
want. You can also have a function return unique rows/edges. Here are
three functions that count multiple edges.
library(igraph)
ee <- c(1,2,2,3,1,2,2,4,1,2,2,3)
g <- graph(ee)
plot(g)
# Returns a two column matrix with edge names and counts
edge.count1 <- function(g){
result <- cbind(E(g), count.multiple(g))
colnames(result) <- c("edge", "count")
result
}
# Returns a three column matrix with edges and counts
edge.count2 <- function(g){
cbind(get.edgelist(g), count.multiple(g))
}
# Adapted from R-Help:
# G. Jay Kerns
# Dec 22, 2007; 11:55pm
# Re: number of count of each unique row
# Returns a data.frame of unique edges and counts
edge.count3 <- function(g){
D <- data.frame(get.edgelist(g)) # convert to data frame
ones <- rep(1, nrow(D)) # a column of 1s
result <- aggregate(ones, by = as.list(D), FUN = sum)
names(result) <- c("from", "to", "count")
result
}
edge.count1(g)
edge.count2(g)
edge.count3(g)
Hope this helps,
Rui Barradas
Em 14-08-2012 22:09, Jonas Michaelis escreveu:
> Dear all,
>
>
> I have some network data - about 300 vertices and several thousand edges. I
> am looking for a way to turn multiple edges into weights of the edges. I
> looked around and - surprisingly? - haven't found anything. Is there an
> easy way to do this?
>
>
> Best, Jonas
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list