楼主: guobinzhenjing
4704 10

[其他] stata中调整数据结构 如何编写命令? [推广有奖]

  • 0关注
  • 1粉丝

VIP

本科生

1%

还不是VIP/贵宾

-

威望
0
论坛币
1016 个
通用积分
0.1200
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
907 点
帖子
58
精华
0
在线时间
56 小时
注册时间
2008-1-30
最后登录
2023-6-23

楼主
guobinzhenjing 发表于 2010-3-12 17:13:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问:如下所示,那是目前的数据结构。想在stata中如何施以命令产生1210(605*2)个obs的xtset?
我需要的数据结构形似应是:
hhid year    slcp      ttinc       agrsinc  agrinc  husinc      forinc       fuyeinc  otherinc  varlist
1      0           0        10000     5000     1000    2000          1000         1000      5000    ...
1      1          1         15000     4000      500    2000          1000           500       11000  ...
2      0          1
2      1           1
。。。。。。。
请问,要实现这个目标,怎么做啊?谢谢。


    Variable |    Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
        hhid |       605         303    174.7927             1         605
      region |      605    1.996694    .8158137          1          3
        slcp |       605    .7123967    .4530197          0          1
     ttinc06 |       605     21081.2    23922.53          0     300273
   agrsinc06 |    605    18421.04    23388.29          0     296113
-------------+--------------------------------------------------------
    agrinc06 |      605    7620.694    11181.96          0     138000
    forinc06 |       600    125.8383    1473.353          0      32000
    husinc06 |      605    1926.851    6050.278          0      93585
   fuyeinc06 |       605    8792.292    18678.52          0     214400
  otherinc06 |      605   2664.566    4890.594          0      80320
-------------+--------------------------------------------------------
     ttinc99 |        605     8373.25       12466          0     139800
   agrsinc99 |     605    6194.008    10605.19          0     135000
    agrinc99 |      605    3112.593    6891.417          0     123500
    forinc99 |       605    25.80826     239.195          0       4250
    husinc99 |      605    1004.635    2458.671          0      39000
-------------+--------------------------------------------------------
   fuyeinc99 |      605    1673.121    5430.646          0      60000
  otherinc99 |      605    2179.241    4597.019          0      80320
     acult06 |       605    5.700826    5.330912          0         38
     acult99 |       605    9.580431    9.399305          0        181
tthousearesq |   605    116.2248    83.21037          0       1000
-------------+--------------------------------------------------------
   housejian |       605    4.596694    2.202344          0         36
prodcasset06 |    605    2515.783    9790.376          0     198400
prodcasset99 |   605    335.3504    1328.687          0      10240
        delt |       605        7053.046    15360.64          0     160000
       hdage |       605        46.8    10.65106          6         79
-------------+--------------------------------------------------------
       hdedu |       605    5.396694    3.840097          0         15
    hdleader |       605     .168595    .3747036          0          1
     famsize |       605     4.71405    1.290266          1          9
        ttlb |       605    2.590083    1.062875          0          6
    offlab06 |       605     1.05124    .9450214          0          5
-------------+--------------------------------------------------------
    offlab99 |       605    .3024793    .6192902          0          4
   wkmonth06 |       605    5.970248    4.882894          0         12
   wkmonth99 |       605    1.905785    3.898151          0         12
distwnnear~t |       605     7.80876    8.612118          0        100
placeoffw~06 |       605     2.28595    1.876806          0          6
-------------+--------------------------------------------------------
placeoffw~99 |       605    .7900826    1.571866          0          6
waytowork06 |       605    2.550413    2.152202          0          6
waytowork99 |       605    .8826446    1.775788          0          6
govpromotion |       605    .3305785    .4708107          0          1
offfarmwk06 |       605    .6826446    .4658322          0          1
-------------+--------------------------------------------------------
offfarmwk99 |       605     .231405    .4220796          0          1
二维码

扫码加我 拉你入群

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

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

关键词:Stata 数据结构 tata Promotion Variable 如何

沙发
sungmoo 发表于 2010-3-12 17:21:37
guobinzhenjing 发表于 2010-3-12 17:13 请问:如下所示,那是目前的数据结构。想在stata中如何施以命令产生1210(605*2)个obs的xtset?
我需要的数据结构形似应是:
hhid year    slcp      ttinc       agrsinc  agrinc  husinc      forinc       fuyeinc  otherinc  varlist
1      0           0        10000     5000     1000    2000          1000         1000      5000    ...
1      1          1         15000     4000      500    2000          1000           500       11000  ...
2      0          1
2      1           1
。。。。。。。
请问,要实现这个目标,怎么做啊?
没太看懂你的生成规则。

藤椅
guobinzhenjing 发表于 2010-3-12 17:48:22
我以前的数据结构没有把时间作为一个变量独立列出来。
以前是:
hhid slcp   inc06        inc99        obs   varlist
1       0      50000       20000      605
2       1      10000      8000         605
3       1      18000      15000       605
...
现在想把它调整过来,为:
hhid   year(06=1,99=0)             slcp(1=处理组,0=控制组)                                   inc                         obs   varlist
1         0                                         0                                                                      20000                       605
1         1                                         0                                                                      50000                       605
2          0                                        1                                                                      15000                       605
2          1                                        1                                                                      18000                       605
....
如何实现这一转化?如何设置命令??

希望高手指点。谢谢!

板凳
sungmoo 发表于 2010-3-12 22:16:30
guobinzhenjing 发表于 2010-3-12 17:48 我以前的数据结构没有把时间作为一个变量独立列出来。以前是:
hhid slcp   inc06        inc99        obs   varlist
1       0      50000       20000      605
2       1      10000      8000         605
3       1      18000      15000       605
...
现在想把它调整过来,为:
hhid   year(06=1,99=0)             slcp(1=处理组,0=控制组)                                   inc                         obs   varlist
1         0                                         0                                                                      20000                       605
1         1                                         0                                                                      50000                       605
2          0                                        1                                                                      15000                       605
2          1                                        1                                                                      18000                       605
....
如何实现这一转化?如何设置命令?
*试一下:

expandcl 2,cl(hhid) gen(t)
sort hhid t
g year=(mod(t,2)==1)
g inc=inc06*(mod(t,2)==1)+inc99*(mod(t,2)==0)
drop inc06 inc99 t

报纸
guobinzhenjing 发表于 2010-3-13 02:37:24
非常感谢版主帮助!您的确技术高超啊。
解决了我的问题。
不过,有一点,每个农户观测两次,所以,
应是g inc=inc06*(mod(t,1)==1)+inc99*(mod(t,1)==0).
换句话,2期面板数据,样本量扩大为原来的2倍。
非常感谢您的帮助!

地板
sungmoo 发表于 2010-3-13 07:58:34
guobinzhenjing 发表于 2010-3-13 02:37 应是g inc=inc06*(mod(t,1)==1)+inc99*(mod(t,1)==0)
任何整数除以1的余数都是0吧?

7
voodoo 发表于 2010-3-13 10:57:26
为何不用reshape命令呢?
clear
input hhid slcp inc06 inc99 obs
1 0 50000 20000 605
2 1 10000 8000 605
3 1 18000 15000 605
end
reshape long inc, i(hhid) j(year) string
巫毒上传,必属佳品!
坛友下载,三思后行!

8
sungmoo 发表于 2010-3-13 11:13:23
voodoo 发表于 2010-3-13 10:57 reshape long inc, i(hhid) j(year) string
按楼主的意思,这样之后还要对year重新转化一次,变成哑元(可能再涉及生成与去除变量)。

9
guobinzhenjing 发表于 2010-3-15 10:22:01
版主的方法非常好!
也感谢7楼朋友献上的对策。我还是比较推崇compandcl的命令。

10
sungmoo 发表于 2010-3-15 10:39:29
guobinzhenjing 发表于 2010-3-15 10:22 也感谢7楼朋友献上的对策
如果时间标识可以是字符型的,7楼的方法很直接。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-9 03:29