Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: Re: Snowball sampling


From   "Joseph Coveney" <stajc2@gmail.com>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: Snowball sampling
Date   Sat, 23 Mar 2013 13:06:02 +0900

Ray Hawkins wrote:

I am working with social network data, but it is too big, so I would like to
do snowball sampling. My data look like the following. Can you help me
figure out how to keep 'giveid' and corresponding 'recid' for a seed id? For
example, giveid=17 is a seed id. So, I would like to keep giveid=17 and all
giveid (=recid for giveid=17) = 6, 2, 5, 23, 1, 11, 4, 16, 33, 27, 16 (if
exist, of course). Then, for another seed id=32, for example, I would like
to repeat the same process to get certain data size. Thank you in advance.

--------------------------------------------------------------------------------

Not very efficient, but it should work and it has an easy-to-debug one-to-one
correspondence with the specifications:

* "keep giveid=17"
generate byte keep = giveid == 17

* "and all giveid (=recid for giveid=17)"
quietly levelsof recid if giveid == 17, local(keepers)
quietly foreach keeper of local keepers {
    replace keep = 1 if giveid == `keeper'
}

* "repeat the same process" "for another seed id=32"
quietly replace keep = 1 if giveid == 32
quietly levelsof recid if giveid == 32, local(keepers)
quietly foreach keeper of local keepers {
    replace keep = 1 if giveid == `keeper'
}

quietly keep if keep

Joseph Coveney

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index