Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: RE: RE: Transform source table to edgelist (or nodelist)
From
Robert Picard <[email protected]>
To
[email protected]
Subject
Re: st: RE: RE: Transform source table to edgelist (or nodelist)
Date
Mon, 20 Feb 2012 11:34:25 -0500
A list of all connected managers can be generated directly using the
-joinby- command:
*----------- begin example -------------
version 12
clear
input fid str1 mid
1 A
1 B
1 C
2 A
2 B
2 D
end
tempfile main
save "`main'"
* within each firm, form all pairwise combinations of managers
use "`main'"
rename mid mid2
joinby fid using "`main'"
list fid mid mid2, noobs sepby(mid2)
* reduce to connected managers list
sort mid mid2
by mid mid2: keep if _n == 1
drop if mid2 <= mid
list mid mid2, noobs sepby(mid)
tempfile connect
save "`connect'"
* to get a complete list of all possibilities
* form all pairwise combinations of managers
use "`main'", clear
keep mid
sort mid
by mid: keep if _n == 1
tempfile mgrs
save "`mgrs'"
rename mid mid2
cross using "`mgrs'"
sort mid mid2
list mid mid2, noobs sepby(mid)
drop if mid2 <= mid
* final list
merge 1:1 mid mid2 using "`connect'"
gen connect = _merge == 3
sort mid mid2
list mid mid2 connect, noobs sepby(mid)
*------------ end example --------------
On Mon, Feb 20, 2012 at 7:25 AM, Nick Cox <[email protected]> wrote:
> Sorry, no; that's a different problem.
>
> Nick
> [email protected]
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox
> Sent: 20 February 2012 10:54
> To: '[email protected]'
> Subject: st: RE: Transform source table to edgelist (or nodelist)
>
> This looks like an FAQ
>
> http://www.stata.com/support/faqs/data/pairs.html
>
> although I suspect there is a less clumsy way to approach it.
>
> Nick
> [email protected]
>
> Steve Sauerwald
>
> I have a source table that contains manager/firm information. A
> manager can work for M companies and a company can have N managers.
> For instance, the following table shows 2 firms (FID 1 and 2) and four
> managers (MID A, B, C, and D).
>
> FID MID
> 1 A
> 1 B
> 1 C
> 2 A
> 2 B
> 2 D
>
> Now, I'd like to create the interlocking relationships between managers. If
> two managers work together in the same firm (or in more than one
> firm), this would indicate a "1." If not, a "0." The end result should
> be an adjacency matrix but I'd be happy to get to an edgelist first
> such as the following:
>
> MID1 MID2 CONNECT
> A B 1
> A C 1
> A D 1
> B C 1
> B D 1
> C D 0
>
> Based on the information in the source table, manager C and manager D
> are not connected in either firm 1 or 2, hence the 0. My actual source
> table contains quite a few records so it would be great to automate
> this process. Does anyone have an idea of how to implement this in
> Stata?
>
> Alternatively, the UCLA Stata website
> (http://www.ats.ucla.edu/stat/stata/code/adj_matrix.htm) shows some
> code to transform a nodelist into an adjacency matrix (If someone
> knows a way to transform my source table into a nodelist, that'd be
> also a great help).
>
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
>
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/statalist/faq
> * http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/