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: Create common ID # from several changing ID #s
From
Andrea Drechsler <[email protected]>
To
<[email protected]>
Subject
Re: st: Create common ID # from several changing ID #s
Date
Fri, 3 Dec 2010 16:58:02 -0500
Robert,
This is perfect! I suspected a command like group_id existed, but
couldn't find it. Thanks so much for elegantly solving this problem!
~ Andrea
On Fri, Dec 3, 2010 at 4:34 PM, Robert Picard <[email protected]> wrote:
>
> Andrea,
>
> Here's a way to this using the -group_id- program available from SSC. Type:
>
> ssc d group_id
>
> for more information. Hope this helps,
>
> Robert
>
> *--------------------------- begin example -----------------------
> version 11
> clear
> input long (current_id other_id1 other_id2)
> 4001 . .
> 4002 406434127 .
> 406434166 406434127 .
> 406434127 406434166 406414087
> 406414087 406384157 .
> 406384157 . .
> 4071 . .
> 4072 4071 .
> 4073 . .
> end
>
> * Assign a new identifier and save the master list of providers
> sort current_id
> gen newid = _n
> list, noobs sep(0)
> tempfile fmain
> save "`fmain'"
>
> * Duplicate records when there are alternate identifiers
> keep newid other_id1
> rename other_id1 current_id
> keep if !missing(current_id)
> tempfile alt1
> save "`alt1'"
>
> use "`fmain'", clear
> keep newid other_id2
> rename other_id2 current_id
> keep if !missing(current_id)
> append using "`alt1'"
> append using "`fmain'"
> keep newid current_id
> sort newid current_id
> list, sepby(newid)
>
> * Group newid when current_di matches
> group_id newid, matchby(current_id)
> sort newid
> list, sepby(newid)
>
> * Remove duplicates and update the initial data with new codes
> sort current_id newid
> by current_id newid: keep if _n == 1
> merge 1:1 current_id using "`fmain'", assert(match) nogen
>
> list, noobs sep(0)
>
> *--------------------------- end example -----------------------
>
>
> On Fri, Dec 3, 2010 at 1:24 PM, Andrea Drechsler
> <[email protected]> wrote:
> > Hello,
> >
> > I have a dataset of medical providers at the provider-year level.
> > Each provider has an ID #. If the provider moves to a new location,
> > they are assigned a new ID #. I have two other variables that
> > sometimes contain providers' previous or future ID #s. I'm trying to
> > create a common ID # for each provider so I can track them over time.
> >
> > For example, I'd like to assign all of the following observations a common ID #:
> >
> > current_id other_id1 other_id2
> > 406434166 406434127
> > 406434127 406434166 406414087
> > 406414087 406384157
> > 406384157
> >
> > Thanks very much in advance!
> >
> > ~ Andrea Drechsler
> > *
> > * 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/