1818 4

[数据管理求助] 怎样用stata统计一个code下所有其他变量的不同取值? [推广有奖]

  • 0关注
  • 0粉丝

小学生

64%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
4
精华
0
在线时间
9 小时
注册时间
2019-9-5
最后登录
2020-7-20

楼主
阿阿阿阿阿阿阿阿 发表于 2019-12-28 15:51:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
捕获.PNG


code   var1   var2   var3   var4   var5   var6   newvar
abc      .        .        1       1        1        1         1
def      1       1        2       3        1        1         3


如图所示,我想生成一个新变量(newvar)来表示同一code所对应的其他变量非空取值的变化次数。如果相邻的两个非空取值相等的话则视为不变,新变量记为0;若是code所对应的一系列变量的观察值按1.1.2.3.1.1取值的话,表示该code从1到2到3到1,变动了三次,新变量取值为3.这该怎样在Stata中实现呢?求各位大神指导
二维码

扫码加我 拉你入群

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

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

关键词:Stata 求助stata stata数据处理 stata编程 STATA数据

沙发
阿阿阿阿阿阿阿阿 发表于 2019-12-28 19:00:30
[cry][cry]

藤椅
震震果实 发表于 2019-12-28 19:57:06

  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str4 code double(var1 var2 var3 var4 var5)
  4. "1" . . 1 1 2
  5. "2" 1 2 2 1 1
  6. "3" 1 . 2 2 1
  7. "4" 1 . 1 2 1
  8. end
复制代码

板凳
震震果实 发表于 2019-12-28 21:40:13
  1. save cs,replace
  2. destring,replace
  3. reshape long var,i(code) j(t)
  4. drop if var==.
  5. sort code t
  6. bys code:gen n=_n
  7. xtset code n
  8. bys code:gen v=var-L.var
  9. gen vv=(v!=0 & v!=.)
  10. bys code:egen tv=total(vv)
  11. drop v vv
  12. duplicates drop code,force
  13. drop t var n
  14. save nv,replace
  15. tostring code,replace
  16. merge 1:1 code using cs
  17. drop _m
  18. order code var1 var2 var3 var4 var5 tv
复制代码

报纸
蓝色 发表于 2019-12-29 08:35:15
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str4 code double(var1 var2 var3 var4 var5)
  4. "1" . . 1 1 2
  5. "2" 1 2 2 1 1
  6. "3" 1 . 2 2 1
  7. "4" 1 . 1 2 1
  8. end

  9. reshape long var,i(code) j(t)

  10. bys code:gen v=var-var[_n-1]
  11. replace v=. if v==0
  12. replace v=1 if v!=0 & v!=.
  13. bys code:egen newvar=total(v)
  14. drop v

  15. reshape wide var,i(code) j(t)

  16. list
复制代码

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-19 22:42