[R] help matching observations for social network data
William Dunlap
wdunlap at tibco.com
Wed Mar 21 05:50:24 CET 2012
Your data.frame is
d <- data.frame(
ego = c(1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 5, 6),
alter = c(2, 3, 1, 4, 1, 2, 4, 6, 1, 3, 6, 4))
and you want to get
e <- data.frame(
ego = c(1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 6),
alter2 = c(4, 2, 4, 6, 3, 1, 2, 1, 4, 1, 4, 2, 3, 1, 2, 4, 6, 4, 1))
Try using merge() and removing the entries where
ego and alter of alter are the same:
f <- function(d) {
tmp <- merge(d, d, by.x = "alter", by.y="ego") # note this gives 'tmp' illegal duplicate column names
tmp2 <- tmp[ tmp[,2] != tmp[,3], c(2,3)]
colnames(tmp2)[2] <- "alter2"
tmp2
}
I think that f(d) and e contain the same set of rows, although
they are ordered differently.
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Holly Shakya
> Sent: Tuesday, March 20, 2012 9:15 PM
> To: r-help at r-project.org
> Subject: [R] help matching observations for social network data
>
> Greetings R folks,
>
> I am stuck on a problem that I suspect can be solved somewhat easily.
>
> I have social network data stored in dyads as below, where the numbers representing
> ego and alter are identifiers, so that number 1 as an ego is the same person as number 1
> as an alter etc.
>
>
> ego alter
> 1 1 2
> 2 1 3
> 3 2 1
> 4 2 4
> 5 3 1
> 6 3 2
> 7 3 4
> 8 3 6
> 9 4 1
> 10 5 3
> 11 5 6
> 12 6 4
>
> What I would like to do is to create new dyads which match up the ego with the alter's
> alters as below (preferably removing dyads in which ego and alter2 are the same):
>
> ego alter2
> 1 1 4
> 2 1 2
> 3 1 4
> 4 1 6
> 5 2 3
> 6 2 1
> 7 3 2
> 8 3 1
> 9 3 4
> 10 3 1
> 11 3 4
> 12 4 2
> 13 4 3
> 14 5 1
> 15 5 2
> 16 5 4
> 17 5 6
> 18 5 4
> 19 6 1
>
>
> Any suggestions as to how to do this would be greatly appreciated.
>
> Holly
> ______________________________________________
> 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