2016-02-13 53 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