楼主: luoyanan98
14114 10

[数据管理求助] stata 关于 reshape的命令 [推广有奖]

  • 0关注
  • 1粉丝

大专生

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
474 点
帖子
36
精华
0
在线时间
43 小时
注册时间
2013-3-9
最后登录
2017-4-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有数据如下

id   cb_1_  cb_2_  cb_3_  cb_4_  
1      1          1           1         1
2      1           2           3         .  
3       6          1            1          6
4       1           1            .          .
5        6           6           .          .
6        6            1           .          .

如何变成wide 数据如下:
id   nom     cb
1       1         1
1       2        1
1       3          1
1       4          1
2       1          1
2       2          2
.        .           .
.
.
.
.
二维码

扫码加我 拉你入群

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

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

关键词:reshape Stata Shape tata APE 如何

沙发
╰不滅信念 学生认证  发表于 2014-5-3 23:39:38 |只看作者 |坛友微信交流群
  1. capture program drop pinggu_fun_1
  2. program pinggu_fun_1
  3.         local var_num = 0
  4.         foreach v of var _all {
  5.                 if `var_num' != 0 {
  6.                         capture rename `v' cb`var_num'
  7.                 }
  8.                 local var_num = `var_num' + 1               
  9.         }
  10.         reshape long cb,i(i) j(nom)
  11. end

  12. pinggu_fun_1
复制代码

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
an你若成风 + 1 + 1 + 1 精彩帖子
crystal8832 + 2 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

where there is a will there is a way

使用道具

藤椅
powelton 发表于 2014-5-4 21:07:59 |只看作者 |坛友微信交流群
楼上程序很不错,完全可行,只是不知道reshape之前的程序作何用途?

使用道具

板凳
╰不滅信念 学生认证  发表于 2014-5-4 22:10:33 |只看作者 |坛友微信交流群
powelton 发表于 2014-5-4 21:07
楼上程序很不错,完全可行,只是不知道reshape之前的程序作何用途?
reshape操作的变量好像只能是以数字结尾的,结果原始的变量名以“_”结尾,瞬间reshape就不能用了,所以批重命名为cb1 cb2 ...
where there is a will there is a way

使用道具

报纸
powelton 发表于 2014-5-4 22:58:52 |只看作者 |坛友微信交流群
明白了,多谢!

使用道具

地板
luoyanan98 发表于 2014-5-5 10:19:29 |只看作者 |坛友微信交流群
╰不滅信念 发表于 2014-5-4 22:10
reshape操作的变量好像只能是以数字结尾的,结果原始的变量名以“_”结尾,瞬间reshape就不能用了,所以批 ...
非常感谢~~~~但是我有个疑问,这样程序中所有的变量名字都会被改变。。。要怎么处理呢

使用道具

7
╰不滅信念 学生认证  发表于 2014-5-5 10:57:55 |只看作者 |坛友微信交流群
luoyanan98 发表于 2014-5-5 10:19
非常感谢~~~~但是我有个疑问,这样程序中所有的变量名字都会被改变。。。要怎么处理呢
如果是拉成长数据的话也无所谓,因为原来的cb_1_...什么的到最后肯定要变成
cb
1
2
3
...
这样的,但如果是做数据分析,在保持变量名不变的情况下,可能也用不到reshape命令

还有要注意在循环中没有对所有的变量名进行修改,第一个id是照原样保存的
where there is a will there is a way

使用道具

8
经济大菜鸟 发表于 2014-5-5 11:17:51 |只看作者 |坛友微信交流群
这个必须要赞一个!

使用道具

9
蓝色 发表于 2014-5-5 14:09:17 |只看作者 |坛友微信交流群
reshape long cb,i(id) j(code) string
replace code=subinstr(code,"_","",. )
list






. reshape long cb,i(id) j(code) string
(note: j = _1_ _2_ _3_ _4_)

Data                               wide   ->   long
-----------------------------------------------------------------------------
Number of obs.                        6   ->      24
Number of variables                   5   ->       3
j variable (4 values)                     ->   code
xij variables:
                  cb_1_ cb_2_ ... cb_4_   ->   cb
-----------------------------------------------------------------------------

. replace code=subinstr(code,"_","",. )
(24 real changes made)

. list

     +----------------+
     | id   code   cb |
     |----------------|
  1. |  1      1    1 |
  2. |  1      2    1 |
  3. |  1      3    1 |
  4. |  1      4    1 |
  5. |  2      1    1 |
     |----------------|
  6. |  2      2    2 |
  7. |  2      3    3 |
  8. |  2      4    . |
  9. |  3      1    6 |
10. |  3      2    1 |
     |----------------|
11. |  3      3    1 |
12. |  3      4    6 |
13. |  4      1    1 |
14. |  4      2    1 |
15. |  4      3    . |
     |----------------|
16. |  4      4    . |
17. |  5      1    6 |
18. |  5      2    6 |
19. |  5      3    . |
20. |  5      4    . |
     |----------------|
21. |  6      1    6 |
22. |  6      2    1 |
23. |  6      3    . |
24. |  6      4    . |
     +----------------+

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
╰不滅信念 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

10
luoyanan98 发表于 2014-5-5 17:23:10 |只看作者 |坛友微信交流群
wow,太赞了~~~

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-24 20:02