[R] Reshaping Data for bi-partite Network Analysis [SOLVED]
arun
smartpink111 at yahoo.com
Sun Apr 14 17:10:21 CEST 2013
HI Sylvain,
To get the same order as in "Output"
Input$place<- factor(Input$place,levels=c("school","home","sport","beach"))
Input$people<- factor(Input$people,levels=c("Marc","Joe","Mary"))
xtabs(time~.,Input)
# place
#people school home sport beach
# Marc 2 4 0 0
#Joe 0 3 1 5
#Mary 4 0 0 0
A.K.
________________________________
From: sylvain willart <sylvain.willart at gmail.com>
To: arun <smartpink111 at yahoo.com>
Cc: R help <r-help at r-project.org>
Sent: Saturday, April 13, 2013 5:41 PM
Subject: Re: [R] Reshaping Data for bi-partite Network Analysis [SOLVED]
Wow !
so many thanks Arun and Rui
works like a charm
problem solved
2013/4/13 arun <smartpink111 at yahoo.com>
Hi,
>Try this;
>library(reshape2)
>res<-dcast(Input,people~place,value.var="time")
>res[is.na(res)]<-0
> res
># people beach home school sport
>#1 Joe 5 3 0 1
>#2 Marc 0 4 2 0
>#3 Mary 0 0 4 0
>
>#or
> xtabs(time~.,Input)
># place
>#people beach home school sport
> # Joe 5 3 0 1
> # Marc 0 4 2 0
> # Mary 0 0 4 0
>
>A.K.
>
>
>
>________________________________
> From: sylvain willart <sylvain.willart at gmail.com>
>To: r-help <r-help at r-project.org>; sylvain willart <sylvain.willart at gmail.com>
>Sent: Saturday, April 13, 2013 5:03 PM
>Subject: [R] Reshaping Data for bi-partite Network Analysis
>
>
>
>Hello
>
>I have a dataset of people spending time in places. But most people don't
>hang out in all the places.
>
>it looks like:
>
>> Input<-data.frame(people=c("Marc","Marc","Joe","Joe","Joe","Mary"),
>+ place=c("school","home","home","sport","beach","school"),
>+ time=c(2,4,3,1,5,4))
>> Input
> people place time
>1 Marc school 2
>2 Marc home 4
>3 Joe home 3
>4 Joe sport 1
>5 Joe beach 5
>6 Mary school 4
>
>In order to import it within R's igraph, I must use graph.incidence(), but
>the data needs to be formatted that way:
>
>>
>Output<-data.frame(school=c(2,0,4),home=c(4,3,0),sport=c(0,1,0),beach=c(0,5,0),
>+ row.names=c("Marc","Joe","Mary"))
>> Output
> school home sport beach
>Marc 2 4 0 0
>Joe 0 3 1 5
>Mary 4 0 0 0
>
>The Dataset is fairly large (couple hundreds of people and places), and I
>would very much appreciate if someone could point me to a routine or
>function that could transform my Input dataset to the required Output,
>
>Thank you very much in advance
>
>Regards
>
>Sylvain
>
>PS: sorry for cross-posting this on statnet and then on R help list, but I
>received a message from statnet pointing out the question was more related
>to general data management than actual network analysis. Which is true
>indeed...
>
> [[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