从长到长的Stata重塑财务数据

时间:2015-11-30 06:24:11

标签: stata transformation reshape financial

我有以下数据:

---------------------------------
|Company | Item  | 2012 | 2013 |
---------------------------------    
|  ABD   |  TA   | 100  | 110  |  
|  ABD   | EBIT  | 200  | 220  |  
|  JKL   |  TA   | 115  | 120  |  
|  JKL   | EBIT  | 250  | 270  |  

其中Company是特定公司的ID,Item标识了2012年和2013年该公司的某些特定信息,如利润或资产。

我想将其转换为以下

---------------------------------
|Company | Year  | TA   | EBIT | 
--------------------------------- 
|  ABD   | 2012  | 100  | 200  |  
|  ABD   | 2013  | 110  | 220  |  
|  JKL   | 2012  | 115  | 250  |  
|  JKL   | 2013  | 120  | 270  |  

我已经尝试{/ 1}}

reshape

然而,这并没有奏效。

1 个答案:

答案 0 :(得分:1)

永远不要只说某些“不起作用”。准确地说出发生了什么(在这种情况下,给出错误信息)并解释为什么它不是你想要的。

在您的情况下,20122013不可能是Stata变量名,因为没有Stata变量名可以以数字开头。如果2012是允许的变量名称,那么Stata如何判断2012是自己的意思还是具有相同名称的变量? (20122013可能是变量标签,但reshape不适用于变量标签。)

在任何情况下,都不应为reshape提供变量名称。它需要存根,如帮助中记录的那样。

我们无法看到您的变量名称。假设您有v2012v2013

clear 
input str3 Company  str4 Item v2012 v2013
  ABD     TA    100   110    
  ABD    EBIT   200   220    
  JKL     TA    115   120    
  JKL    EBIT   250   270  
end 
reshape long v , i(Company Item) j(Year) 
list 

     +-----------------------------+
     | Company   Item   Year     v |
     |-----------------------------|
  1. |     ABD   EBIT   2012   200 |
  2. |     ABD   EBIT   2013   220 |
  3. |     ABD     TA   2012   100 |
  4. |     ABD     TA   2013   110 |
     |-----------------------------|
  5. |     JKL   EBIT   2012   250 |
  6. |     JKL   EBIT   2013   270 |
  7. |     JKL     TA   2012   115 |
  8. |     JKL     TA   2013   120 |
     +-----------------------------+
reshape wide v, i(Company Year) j(Item) string 
renpfix  v 

list

     +-----------------------------+
     | Company   Year   EBIT    TA |
     |-----------------------------|
  1. |     ABD   2012    200   100 |
  2. |     ABD   2013    220   110 |
  3. |     JKL   2012    250   115 |
  4. |     JKL   2013    270   120 |
     +-----------------------------+

请注意进一步解决您的问题。 i(Company)不会有任何作用,因为每个标识符都有多个观察结果。您需要两次调用reshape,因为需要long才能获得不同年份的观察结果,并且需要wide才能将不同的项目作为变量。

in this FAQ记录了频繁需要双reshape的信息:Stata中的search reshape会指向您。

如果您的变量名称不同,显然您的语法会有所不同。正如刚引用的常见问题解答中所述,您可能需要rename变量才能reshape

注意:经过编辑,该计划被称为Stata,并且已有近30年的历史。任何告诉你的消息来源都不具有权威性。