楼主: 大头又头大
276 3

[数据管理求助] 求两两相邻非缺失值变量的差的绝对值 [推广有奖]

  • 0关注
  • 0粉丝

初中生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
52 点
帖子
5
精华
0
在线时间
26 小时
注册时间
2022-11-19
最后登录
2024-1-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. * Example generated by -dataex-. For more info, type help dataexclearinput int ID double(a1 a2 a3 a4 a5 a6 a7 a8 a9 a10)18619  7.3    .  7.3 7.3   .   .    . 6.5   .  6.56965    6    .    6   6   .   .  6.8 5.9   .  5.915748  8.5    .    .   .   .   .  8.5 7.9   .  7.912472  6.3    .  6.3 6.3   . 5.8  6.8   .   .  6.415407 11.9    . 12.4   .   .   .   13   .   .    . 6368  6.1  6.2  6.1 5.9 5.9 6.3  6.9 6.2   .  6.17552  5.8    .    .   . 5.8 6.3    .   .   .  6.311907  5.6    .    .   . 5.6 5.2    6   .   .    6 8510   12 13.5 12.8   .   .   .    .   .   .    . 5291  6.1    .    .   .   6 6.5  5.8 6.7   .  6.8 7337  6.1  6.9  6.8   .   .   .    .   .   .    612570 12.2    . 10.8   .   .  12    .   .   .    .12536  8.1    .    .   .   . 8.1  7.4   .   .  7.4 3937  8.7    .  8.7 8.7   . 7.6  7.7   .   .  7.7 8448  8.8  8.8  8.8   .   .   . 10.3   .   . 10.3 4057    8  7.2  7.2   .   . 6.3    .   .   .  6.311879  7.7    .    .   .   . 7.4  6.9 7.7 8.4  8.5 6219  5.6    .  5.6 5.6 6.4 6.7  7.4 6.5   .  6.5
复制代码
[/code][/code]可能描述到不是很清楚,这里举一个例。如第一行数据,共有五个值,就需要求四个差值的绝对值,即|a1-a3|,|a3-a4|,|a8-a4|,|a10-a8|。我自己也尝试了编写了代码,奈何编程小白,能力有限,所以来此求各位大佬帮帮忙。代码如下:
  1. local n=1local j=2forvalue i=1/9{    while a`i'!=.{        local x=a`i'        dis "第一次"`x'        local i=`i'+1                if a`i'!=. continue,break      }    while a`j'!=.{        local y=a`j'        dis "第二次"`y'        if a`j'!=. continue,break       }        gen diff`n'=abs(`x'-`y')           local j=`j'+1        local n=`n'+1        if `i'>9 continue,break    }
复制代码
但这个代码有两个问题:1、该代码只能运行第一行数据;2、该代码必须保证a1、a2不缺失才能运行。求跪求各位大佬指导一下

二维码

扫码加我 拉你入群

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

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

关键词:绝对值 缺失值 generated continue forvalue

沙发
大头又头大 发表于 2022-11-24 10:43:37 |只看作者 |坛友微信交流群
第一次发帖,排版好像有点问题,改了几次加了序号排列还是错位了,代码和数据我重发到评论区了

使用道具

藤椅
大头又头大 发表于 2022-11-24 10:50:41 |只看作者 |坛友微信交流群
  1. local n=1
  2. local j=2
  3. forvalue i=1/9{
  4.     while a`i'!=.{
  5.         local x=a`i'
  6.         dis "第一次"`x'
  7.         local i=`i'+1
  8.                 if a`i'!=. continue,break  
  9.     }
  10.     while a`j'!=.{
  11.         local y=a`j'
  12.         dis "第二次"`y'
  13.         if a`j'!=. continue,break         
  14.     }
  15.         gen diff`n'=abs(`x'-`y')         
  16.         local j=`j'+1
  17.                 local n=`n'+1
  18.         if `i'>9 continue,break
  19.     }  
复制代码

使用道具

板凳
大头又头大 发表于 2022-11-24 10:51:01 |只看作者 |坛友微信交流群
  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input int id double(a1 a2 a3 a4 a5 a6 a7 a8 a9 a10)
  4. 18619  7.3    .  7.3 7.3   .   .    . 6.5   .  6.5
  5. 6965    6    .    6   6   .   .  6.8 5.9   .  5.9
  6. 15748  8.5    .    .   .   .   .  8.5 7.9   .  7.9
  7. 12472  6.3    .  6.3 6.3   . 5.8  6.8   .   .  6.4
  8. 15407 11.9    . 12.4   .   .   .   13   .   .    .
  9. 6368  6.1  6.2  6.1 5.9 5.9 6.3  6.9 6.2   .  6.1
  10. 7552  5.8    .    .   . 5.8 6.3    .   .   .  6.3
  11. 11907  5.6    .    .   . 5.6 5.2    6   .   .    6
  12. 8510   12 13.5 12.8   .   .   .    .   .   .    .
  13. 5291  6.1    .    .   .   6 6.5  5.8 6.7   .  6.8
  14. 7337  6.1  6.9  6.8   .   .   .    .   .   .    6
  15. 12570 12.2    . 10.8   .   .  12    .   .   .    .
  16. 12536  8.1    .    .   .   . 8.1  7.4   .   .  7.4
  17. 3937  8.7    .  8.7 8.7   . 7.6  7.7   .   .  7.7
  18. 12159  6.1    .  6.4   .   .   .    .   .   .  6.8
  19. 16725  6.8    .    .   .   .   .    . 6.8   .  7.6
  20. 8448  8.8  8.8  8.8   .   .   . 10.3   .   . 10.3
  21. 4057    8  7.2  7.2   .   . 6.3    .   .   .  6.3
  22. 11879  7.7    .    .   .   . 7.4  6.9 7.7 8.4  8.5
  23. 6219  5.6    .  5.6 5.6 6.4 6.7  7.4 6.5   .  6.5
  24. 12415  6.5    .    .   .   .   6  5.9 6.4   .  7.2
  25. 7646    7    .    7   7   .   .    .   . 5.6  5.6
  26. end
复制代码

使用道具

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

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

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

GMT+8, 2024-4-27 08:17