2016-02-13 54 views
0

我想創建一個新的變量在創建新的變量,說cheese2,這需要奶酪和最後的觀察(2921333)把每一個。除以觀察列最後一行

 +----------+ 
    | cheese | 
    |----------| 
    1. | 3060000 | 
    2. | 840333.3 | 
    3. | 1839667 | 
    4. | 1.17e+07 | 
    5. | 1374000 | 
    |----------| 
    6. | 2092333 | 
    7. | 341000 | 
    8. | 3149000 | 
    9. | 3557667 | 
10. | 590666.7 | 
    |----------| 
11. | 8937000 | 
12. | 4142000 | 
13. | 2624000 | 
14. | 1973667 | 
15. | 2921333 | 

我也想這樣做多個列一次即在我的數據集的最後一行劃分多個列。

回答

2

在Stata術語,

通過最後一排分列由觀察創建一個新的變量

變得

在最後一個劃分的變量由值創建一個新的變量觀察。

這樣的問題表明您將總計存儲在上次觀察,電子表格樣式中。這樣的做法無疑對您所要求的內容很方便,但它創造了排除最後幾乎所有其他操作的觀點的責任,並且保持精確的排序順序,因此通常被認爲是一個壞主意。

所有這一切說,

gen cheese2 = cheese/cheese[_N] 

是你的要求和循環在幾個變量可能是

foreach v of var frog newt toad lizard dragon { 
     gen `v'2 = `v'/`v'[_N] 
} 

另見foreach幫助。

+0

很好,謝謝你的詳細解釋和代碼。 – Sally