全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
3721 9
2012-03-01
请问连老师,
我需要将原始数据整理为panel data 的格式,原始数据格式为下面的样子(所列为变量):
fid  SIZE  INDA06 INDA07 INDA08 INDA09 INDA10 INDB06 INDB07 INDB08 INDB09 INDB10 INDC06......ABSBID
其中fid 是用_n 产生的id 变量,最后的ABSBID 是数据库赋予的编号为字符型数据,其它均为数字型。
我想用reshape 命令转换为 id 和year 的形式,格式为:
reshape long INDA INDB INDC, i(fid) j(year)
可是总是出现错误信息:“may not use reshape on unit record data”
请老师指点如何处理。。谢谢。。
-------------------------------------------
下面是前两个观察值数据,不好意思太长了有些乱。。
=============================================

+------------------------------------------------------------------+
  1. | fid  |     SIZE  |       INDA06  |       INDA07  |       INDA08  |
     |   1  | Non-empl  | $0 to $20,00  | Greater than  | Not reported  |
     |------------------------------------------------------------------|
     |       INDA09 |       INDA10 | INDB06 | INDB07 | INDB08 | INDB09  |
     | Not reported | Not reported |  91215 | 101545 | 101429 |  99020  |
     |------------------------------------------------------------------|
     | INDB10 | INDC06 | INDC07 | INDC08 | INDC09 | INDC10 |     ABSBID |
     | 100130 |      0 |      0 |      0 |      0 |      0 | BLD10E2733 |
     +------------------------------------------------------------------+
     +------------------------------------------------------------------+
  2. | fid  |     SIZE  |       INDA06  |       INDA07  |       INDA08  |
     |   2  | DSB 5 to  | $0 to $20,00  | $0 to $20,00  | Not reported  |
     |------------------------------------------------------------------|
     |       INDA09 |       INDA10 | INDB06 | INDB07 | INDB08 | INDB09  |
     | Not reported | Not reported | 696699 | 931449 | 609437 | 711793  |
     |------------------------------------------------------------------|
     | INDB10 | INDC06 | INDC07 | INDC08 | INDC09 | INDC10 |     ABSBID |
     | 684944 |      0 |      0 |      0 |      0 |      0 | BLD10E2734 |
     +------------------------------------------------------------------+


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-3-2 18:01:04
reshape 只能针对数值型变量进行转换。
因此,你需要把“Not reported”,“$0 to $20,00”之类的观察值都转换成数字,然后再执行视频中的操作方式。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-3 17:06:59
多谢。
可是那些变量的“des”显示确实是数值型变量啊,list 出来的是不是它们滴 label 啊;那个“not reported”也是label 吧。。遗憾,数据库不能直接看数据,只能输入命令分析数据。。下面是运行滴 “des”结果。还请老师解惑。。谢谢。。
==================================

. use "tem", clear

. des, detail

Contains data from tem.dta
  obs:         3,432 (max=    6,553,596)      
vars:            18 (max=        5,000)      3 Mar 2012 19:49
width:            87 (max=       60,000)      
size:       312,312 (max=  629,145,384)      
-------------------------------------------------------------------------------
              storage  display     value
variable name   type   format      label      variable label
-------------------------------------------------------------------------------
ABSBID          str10  %10s                  
fid             float  %9.0g                  
SIZE            byte   %8.0g       SIZE       Derived Size Benchmark (DSB)
                                                employment (as used in
                                                stratification)
INDA06          long   %12.0g      V401_06    Exports Custom Value (ICV) -
                                                Total
INDA07          long   %12.0g      V401_07    Exports Custom Value (ICV) -
                                                Total
INDA08          long   %12.0g      V401_08    Exports Custom Value (ECV) -
                                                Total
INDA09          long   %12.0g      V401_09    Exports Custom Value (ECV) -
                                                Total
INDA10          long   %12.0g      V401_10    Exports Custom Value (ECV) -
                                                Total
INDB06          double %10.0g                 BAS: Total sales
INDB07          double %10.0g                 BAS: Total sales
INDB08          long   %12.0g                  BAS: Total sales
INDB09          long   %12.0g                  BAS: Total sales
INDB10          long   %12.0g                  BAS: Total sales
INDC06          long   %12.0g                 BAS: Export sales
INDC07          double %10.0g                 BAS: Export sales
INDC08          long   %12.0g                 BAS: Export sales
INDC09          long   %12.0g                 BAS: Export sales
INDC10          long   %12.0g                 BAS: Export sales
-------------------------------------------------------------------------------
Sorted by:  ABSBID
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-6 09:01:52
最新从数据库机构得知, reshape 命令不被允许,另外想到的 stack 命令也不被允许。。
用条件语句,
比如:
    if  f(INDA06)==06{INDA=INDA06
year=2006

else if f(INDA07)==07 {INDA=INDA07
year=2007
}
.......
这样好像也不行,INDA还是不能正确赋值。。请老师指点如何整理?
多谢。。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-10 20:56:42
你把数据贴入 txt 文档,去掉专属格式,然后再贴回 Stata,看看是否都为数值型,如果是,就可以使用 reshape。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-12 09:55:51
多谢。
不过,数据库专用识别符号 ABSBID  在unit record 这个层面上是无法去掉的。下面是数据库的规定:
“All datasets, including temporary (work) datasets, which contain data at the unit record level must contain the ABS-assigned identifier fields for that data. Do not drop such fields (i.e. if you only keep a subset of variables, the identifier fields must be in this subset). Do not rename these fields. Make sure you input these fields if you are reading a text data file version of a CURF. ”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群