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]

Re: st: automatic joining variables after merging datasets


From   Jörg Eulenberger <j.eulenberger@web.de>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: automatic joining variables after merging datasets
Date   Fri, 03 May 2013 08:01:20 +0200

Thanks a lot Maarten, it works great!
Best Regards Jörg




Am 02.05.2013 09:16, schrieb Maarten Buis:
> On Wed, May 1, 2013 at 11:17 AM, Jörg Eulenberger wrote:
>> is the a automatic way to find variables with the exact same varlabel
>> and then copy the value from the second variable to the first variable?
> Here is one solution:
>
> *------------------ begin example ------------------
> //---------------------- create two example datasets
> tempfile 1 2
> sysuse auto, clear
> gen byte dataset = 1
> save `1'
>
> // change the variable names in dataset 2 by adding
> // a random integer as suffix to the name
> sysuse auto, clear
> gen byte dataset = 2
> foreach var of varlist * {
>     rename `var' `var'`=ceil(6*runiform())'
> }
> save `2'
>
> //---- step 1: collect variable names and var labels
> tempfile varlab1 varlab2
> use `1', clear
> desc, replace
> keep name varlab
> save `varlab1'
>
> use `2', clear
> desc, replace
> keep name varlab
> rename name name2
> save `varlab2'
>
> //---------- step 2: find varnames with same varlabs
> merge 1:1 varlab using `varlab1', keep(match)
>
> //-------------- step 3: create do file that renames
> //                       the variables in dataset 2
> tempname myfile
> tempfile tfile
> file open `myfile' using "`tfile'", write text replace
> forvalues i = 1/`=_N' {
>     file write `myfile' "rename " (name2[`i']) " " (name[`i']) _n
> }
> file close `myfile'
>
> //--------- step 4: apply that .do file to dataset 2
> use `2', clear
> do `tfile'
>
> //-------------------- step5: append dataset 1 and 2
> append using `1'
>
> *------------------- end example -------------------
> (For more on examples I sent to the Statalist see:
> http://www.maartenbuis.nl/example_faq )
>
>
> ---------------------------------
> Maarten L. Buis
> WZB
> Reichpietschufer 50
> 10785 Berlin
> Germany
>
> http://www.maartenbuis.nl
> ---------------------------------
>
> *
> *   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/
>

*
*   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