Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Making Panel data problem

    Hello
    I have a problem that making panel data. However, I still fail to get I wanted.


    ///My code

    //1.ONE data
    use http://www.stata-press.com/data/r14/overlap1, clear
    foreach i in x1 x2{
    destring `i', replace force
    replace `i'=0 if `i' == .
    replace `i'=2 if `i' == .a
    }

    gen t = _n
    cd "D:"
    save "1.dta", replace

    //2. TWO data
    cd "D:"
    webuse reshape1, clear
    gen t = 1
    save m1, replace
    forvalues i =2(1)15{
    replace t = `i'
    save m`i', replace
    }


    //3 Merge ONE and TWO data
    cd "D:"
    use "1.dta",clear
    forvalues i =1(1)15{

    merge 1:m t using "m`i'.dta"
    drop _merge
    }
    end
    /////////
    My ideal Panel data as follows:

    t ONE DATA TWO DATA
    1
    1
    1
    1
    1
    2
    2
    2
    2
    2
    3
    3
    3
    3
    3

  • #2
    I am sorry, I want to generate these data by data1(use http://www.stata-press.com/data/r14/overlap1, clear) and data2 (webuse reshape1, clear)
    please help me to construct Panel data like under:

    n ONE DATA t TWO DATA
    1 1
    1 2
    1 3
    2 1
    2 2
    2 3



    Comment


    • #3
      I use this way, but i only merge t =1 and report "variable t does not uniquely identify observations in the master data"

      /////
      forvalues i =1(1)15{

      merge 1:m t using "m`i'.dta"
      drop _merge
      }

      Comment


      • #4
        I am sorry, please drop id in two data set
        ////
        use http://www.stata-press.com/data/r14/overlap1, clear
        drop id
        foreach i in x1 x2{
        destring `i', replace force
        replace `i'=0 if `i' == .
        replace `i'=2 if `i' == .a
        }

        gen t = _n


        cd "D:\論文 summary\台大研究\中心資料整理"
        save "1.dta", replace

        webuse reshape1, clear
        drop id
        gen t = 1
        save m1, replace
        foreach i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15{
        cd "D:\論文 summary\台大研究\中心資料整理"

        //gen t = `i'
        replace t = `i'

        save m`i', replace
        }
        end
        use "1.dta",clear
        forvalues i =1(1)15{
        merge 1:m t using "m`i'.dta"
        drop _merge
        }
        ///
        However, stata always report "variable t does not uniquely identify observations in the master data"

        the result shows Stata merge fail except t = 1

        seq x1 x2 t sex inc80 inc81 inc82 ue80 ue81 ue82
        1 1 1 1 0 5000 5500 6000 0 1 0
        1 1 1 1 1 2000 2200 3300 1 0 0
        1 1 1 1 0 3000 2000 1000 0 0 1
        2 1 0 2
        3 1 2 3
        4 0 2 4
        1 0 1 5
        2 0 2 6
        3 1 1 7
        4 1 2 8
        5 2 1 9
        6 2 2 10
        1 0 2 11
        2 0 1 12
        3 0 0 13
        4 2 2 14
        1 5 8 15

        Comment


        • #5
          Your merge fails after the first one because after the first merge, there are many observations in the master dataset with t=1.

          Consider this instead of your current loop for merging:

          Code:
          forvalues i = 1/15 {
              merge 1:m t using m`i'
              preserve
                  keep if _merge == 3
                  save merged`i', replace
                  local mergefiles `mergefiles' merged`i'
              restore
              drop if _merge == 3
              drop _merge
          }
          
          clear
          append `mergefiles'

          Comment

          Working...
          X