Bookmark and Share

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: code for merging data


From   Prakash Singh <prakashbhu@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: code for merging data
Date   Mon, 21 Jan 2013 15:48:39 +0530

Thanks Daniel and Nick


Regards
Prakash

On Mon, Jan 21, 2013 at 3:15 PM, Nick Cox <njcoxstata@gmail.com> wrote:
> Daniel gave excellent advice on technique, to which I will add a few
> comments, restating the main point in another way.
>
> Skip ahead to the last iteration of your loop for l = 9. On that iteration, you
>
> use lev3_1
> merge commonid using lev9_1
> capture merge using `mydata'
> ...
> save using `mydata', replace
>
> As the result is just the merge of 3 and 9, it is clear that the
> command you -capture- is the one that failed, but the effect of
> -capture- is that you suppressed the error message which could have
> been informative.
>
> Nick
>
> On Mon, Jan 21, 2013 at 8:42 AM, daniel klein <klein.daniel.81@gmail.com> wrote:
>
>> in your code you reload <lev3_1.dta> each iteration of the
>> (unnecessary, see below) loop. Now, I am not sure this causes the
>> trouble, but it seems kind of odd. Also, saving a temporary file
>> permanently seems no good idea, and this might indeed cause problems,
>> if this temporary file is not saved in the directory where the <lev_>
>> files are.
>>
>> If the problem is not with one of the above mentioned, I cannot tell
>> what is wrong with the files that are not merged, but maybe Stata can
>> -- if you remove the -capture- prefix from your code.
>>
>> I think in general -capture- is best used if you anticipate _one_
>> specific error to occur. Even in this case you want to make sure you
>> -capture- only this error, by checking the return code, or at least
>> you -capture noisily-.
>>
>> Note that the old -merge- allows many files to be merged in one line,
>> so the loop should not be needed for that. You could use it to setup
>> the filenames. In this case code
>>
>> clear
>> [...]
>> forv j = 4/9 {
>>     loc fn `fn' lev`j'_1.dta
>> }
>> u lev3_1.dta
>> mer commonid using `fn'
>> sa mydata ,replace
>>
>> Note that -forvalues- is faster and cleaner than -foreach- with -of numlist-.
>
> Prakash Singh
>
>> I need help in correcting my programming code to merge data set. I am
>> using stata 10.
>>
>> I have 7 stata data files which I need to merge. I wrote code for this
>> but it is only merging last data file to the first one. Please suggest
>> me something on this, my code is
>>
>> clear
>> set mem 700m
>> set more off
>> tempfile mydata
>> foreach l of numlist 4/9 {
>>    use lev3_1.dta
>>    merge commonid using lev`l'_1.dta
>>    capture merge using `mydata'
>>    ren _merge merge3_`l'
>>    save `mydata', replace
>> }
>>
>> Please suggest me that where is the mistake happening in this code.
> *
> *   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index