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 <[email protected]>
To
[email protected]
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 <[email protected]> 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 <[email protected]> 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/