楼主: 子吾001
3735 7

[回归分析求助] stata命令的简化 [推广有奖]

  • 0关注
  • 0粉丝

初中生

4%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
62 点
帖子
6
精华
0
在线时间
13 小时
注册时间
2015-11-27
最后登录
2015-12-12

楼主
子吾001 发表于 2015-12-5 21:03:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
麻烦各位大大帮帮忙

1.一系列贴标签
label var   name2     "a1102. 第二个人的姓名或者称呼  "
label var   name3     "a1103. 第三个人的姓名或者称呼  "
label var   name4     "a1104. 第四个人的姓名或者称呼  "
label var   name5     "a1105. 第五个人的姓名或者称呼  "
label var   name6     "a1106. 第六个人的姓名或者称呼  "
label var   name7     "a1107. 第七个人的姓名或者称呼  "
label var   name8     "a1108. 第八个人的姓名或者称呼  "
label var   name9     "a1109. 第九个人的姓名或者称呼  "
label var   name10    "a1110. 第十个人的姓名或者称呼  "
label var   name11    "a1111. 第十一个人的姓名或者称呼"
label var   name12    "a1112. 第十二个人的姓名或者称呼"
label var   name13    "a1113. 第十三个人的姓名或者称呼"
label var   name14    "a1114. 第十四个人的姓名或者称呼"
label var   name15    "a1115. 第十五个人的姓名或者称呼"

2.以下能用一个循环解决吗?或者只要是最简单的
rename a13201   re0201
rename        a13202   re0301
rename        a13203   re0401
rename        a13204   re0501
rename        a13205   re0601
rename        a13206   re0701
rename        a13207   re0801
rename        a13208   re0901
rename        a13209   re1001
rename        a13210   re1101
rename        a13211   re1201
rename        a13212   re1301
rename        a13213   re1401
rename        a13214   re1501

rename a13301   re0302
rename        a13302   re0402               
rename        a13303   re0502                         
rename        a13304   re0602       
rename        a13305   re0702       
rename        a13306   re0802       
rename        a13307   re0902       
rename        a13308   re1002       
rename        a13309   re1102       
rename        a13310   re1202       
rename        a13311   re1302       
rename        a13312   re1402       
rename        a13313   re1502

rename a13401   re0403
rename        a13402   re0503                     
rename        a13403   re0603       
rename        a13404   re0703       
rename        a13405   re0803       
rename        a13406   re0903       
rename        a13407   re1003       
rename        a13408   re1103       
rename        a13409   re1203       
rename        a13410   re1303       
rename        a13411   re1403       
rename        a13412   re1503

rename a13501  re0504
rename        a13502        re0604           
rename        a13503        re0704
rename        a13504        re0804
rename        a13505        re0904
rename        a13506        re1004
rename        a13507        re1104
rename        a13508        re1204
rename        a13509        re1304
rename        a13510        re1404
rename        a13511        re1504

rename a13601  re0605
rename        a13602  re0705
rename        a13603        re0805         
rename        a13604        re0905
rename        a13605        re1005
rename        a13606        re1105
rename        a13607        re1205
rename        a13608        re1305
rename        a13609        re1405
rename        a13610        re1505

rename a13701  re0706
rename        a13702  re0806
rename        a13703        re0906
rename        a13704        re1006
rename        a13705        re1106
rename        a13706        re1206
rename        a13707        re1306
rename        a13708        re1406
rename        a13709        re1506

rename a13801   re0807
rename        a13802   re0907
rename        a13803         re1007
rename        a13804         re1107               
rename        a13805         re1207
rename        a13806         re1307
rename        a13807         re1407           
rename        a13808         re1507

rename a13901   re0908
rename        a13902   re1008
rename        a13903         re1108
rename        a13904         re1208
rename        a13905         re1308
rename        a13906         re1408
rename        a13907         re1508

rename a131001  re1009
rename        a131002  re1109               
rename        a131003         re1209
rename        a131004         re1309
rename        a131005         re1409
rename        a131006         re1509

rename a131101  re1110
rename        a131102  re1210               
rename        a131103         re1310
rename        a131104         re1410
rename        a131105         re1510

rename a131201  re1211
rename        a131202  re1311                      
rename        a131203         re1411       
rename        a131204         re1511       

rename a131301  re1312
rename        a131302  re1412               
rename        a131303         re1512

rename a131401  re1413
rename        a131402  re1513

rename a131501  re1514

二维码

扫码加我 拉你入群

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

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

关键词:stata命令 Stata tata rename label 第三个人 标签 姓名

沙发
raymondxiang 发表于 2015-12-5 21:36:03
1.一系列贴标签
label var   name2     "a1102. 第二个人的姓名或者称呼  "
label var   name3     "a1103. 第三个人的姓名或者称呼  "
label var   name4     "a1104. 第四个人的姓名或者称呼  "
label var   name5     "a1105. 第五个人的姓名或者称呼  "
label var   name6     "a1106. 第六个人的姓名或者称呼  "
label var   name7     "a1107. 第七个人的姓名或者称呼  "
label var   name8     "a1108. 第八个人的姓名或者称呼  "
label var   name9     "a1109. 第九个人的姓名或者称呼  "
label var   name10    "a1110. 第十个人的姓名或者称呼  "
label var   name11    "a1111. 第十一个人的姓名或者称呼"
label var   name12    "a1112. 第十二个人的姓名或者称呼"
label var   name13    "a1113. 第十三个人的姓名或者称呼"
label var   name14    "a1114. 第十四个人的姓名或者称呼"
label var   name15    "a1115. 第十五个人的姓名或者称呼"
可以这样做:
forval i=2/15 {
   lab var name`i' "a11`i'. 第`i'个人的姓名或者称呼"
}
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 20 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2   查看全部评分

藤椅
子吾001 发表于 2015-12-5 21:50:05
raymondxiang 发表于 2015-12-5 21:36
1.一系列贴标签
label var   name2     "a1102. 第二个人的姓名或者称呼  "
label var   name3     "a110 ...
非常感谢,这个我已经解决了,能做一下第二个问题吗?

板凳
raymondxiang 发表于 2015-12-5 23:06:47
子吾001 发表于 2015-12-5 21:50
非常感谢,这个我已经解决了,能做一下第二个问题吗?
理论上是可以的,但是感觉挺需要时间去想的。我建议你自学一下forvalues, while, 和if. 应该可以做出来。
第一步第把几个相连的变量做一个循环,再把几块内容连接起来做一个循环。因为你最了解你rename的规律了。

报纸
沐阳伴雨 发表于 2015-12-5 23:08:31
可以在Excel里操作 然后copy到do文件里

地板
沐阳伴雨 发表于 2015-12-5 23:08:37
可以在Excel里操作 然后copy到do文件里
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

7
raymondxiang 发表于 2015-12-5 23:23:45
在stata里做确实麻烦一些。如果你真愿意解决,我提出一些建议:
你需要用来parallel loops 平行循环, 而不只是nested loops 嵌套循环。还要用到local macro 宏等概念,觉得你可能不太愿意去学这些了。
我曾经自己rename过一系列变量,我是要将其变成一系列完全无规律的名字,所以有些复杂,你可以简化为一系列数字。
我总结了三种方法,我把命令告诉你,希望对你有帮助。你可以参考:
  1. **rename a list of vars: key is parallel rather than nested loop structure
  2. /*method 1: key is we must run local and foreach simultaneously, can't run separately,
  3. because local will not be kept in memory if running separately*/
  4. local i=1
  5. local name "id city14id hfpcrank se_hkrk pval_hfrk constant se_con pval_con obs R_squared df_m df_r F r2 rmse mss rss r2_a ll ll_0 rank"
  6. foreach x of local name {
  7.     ren v`i' `x'
  8.         local ++i
  9.      }
  10. *method 2: macro extended function local
  11. local name "id city14id hfpcrank se_hkrk pval_hfrk constant se_con pval_con obs R_squared df_m df_r F r2 rmse mss rss r2_a ll ll_0 rank"
  12. forval i=1/21 {
  13.   local varname: word `i' of `name'
  14.   ren v`i' `varname'
  15.   }
  16. *method 3: key is tokenize, and macro shift
  17. tokenize "id city14id hfpcrank se_hkrk pval_hfrk constant se_con pval_con obs R_squared df_m df_r F r2 rmse mss rss r2_a ll ll_0 rank"
  18.   foreach x of varlist v1-v21 {
  19.     ren `x' `1'
  20.         macro shift
  21.      }
  22. *or
  23. tokenize "id city14id hfpcrank se_hkrk pval_hfrk constant se_con pval_con obs R_squared df_m df_r F r2 rmse mss rss r2_a ll ll_0 rank"
  24.   forval i=1/21 {
  25.     ren v`i' `1'
  26.         macro shift
  27.      }
复制代码

已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
夏目贵志 + 10 + 10 + 1 + 1 精彩帖子

总评分: 经验 + 10  论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

8
zhegemeirenyong 在职认证  发表于 2015-12-7 09:02:59
总结起来原始变量名定义为X=“a13”+Y,其中Y再分拆为后两位数+前面1-2位数 。

令BB=rightstr(Y,2),AA=leftstr(Y,length(Y)-2)//注:AA可能为1位或者2位数 。

后面就是循环更改变量名的过程了。

具体你自己再组织,令变量名更改为're'+CCDD,

大概规律是,int(DD)=int(AA)-1,int(CC)=int(AA)+int(BB)-1
已有 1 人评分论坛币 热心指数 收起 理由
admin_kefu + 20 + 3 热心帮助其他会员

总评分: 论坛币 + 20  热心指数 + 3   查看全部评分

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

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