楼主: huangtiancheng
733 3

[问答] 有没有哪位大神解答一下小弟的疑惑,下面这个该怎么写程序啊? [推广有奖]

  • 0关注
  • 0粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
3.8520
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
231 点
帖子
70
精华
0
在线时间
131 小时
注册时间
2019-10-8
最后登录
2022-12-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有一个数据流:a 2 b 3 c d 4 6,按下面要求创建SAS数据集。用语句input id $ no;  变量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6。但是这个数据流存在问题:如有的id没有no,有的no没有id。创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a 2, b 3与d 4。
二维码

扫码加我 拉你入群

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

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

关键词:有没有 sas数据集 Input 数据流 数据集

沙发
乐天天12300 发表于 2021-1-14 22:08:34 |只看作者 |坛友微信交流群
  1. data test;
  2.   input x $ @@;
  3. cards;
  4. a 2 b 3 c d 4 6
  5. ;
  6. run;

  7. *y为字符连续出现的次数,z为数值连续出现的次数;
  8. data test1;
  9.    set test;
  10.    n=_n_;
  11.    retain y z;
  12.    if prxmatch("/\d/", x)=0 and  prxmatch("/\d/", lag(x))=0 then
  13.               do;
  14.                      y+1;
  15.                   end;
  16.   else if prxmatch("/\d/", x)=0 and  prxmatch("/\d/", lag(x))^=0 then
  17.               do;
  18.                      y=1;
  19.                   end;
  20.   else y=.;
  21.         if prxmatch("/\d/", x)^=0 and  prxmatch("/\d/", lag(x)) ^=0 then
  22.               do;
  23.                      z+1;
  24.                   end;
  25.    else if prxmatch("/\d/", x)^=0 and  prxmatch("/\d/", lag(x)) =0 then
  26.               do;
  27.                      z=1;
  28.                   end;
  29.   else z=.;
  30. run;

  31. proc sort data=test1;
  32.     by descending n;
  33. run;

  34. data test2;
  35.    set test1;
  36.    if (y<lag(y) and y^=.) or z>1 then delete;
  37. run;

  38. proc sort data=test2;
  39.    by n;
  40. run;
复制代码

使用道具

藤椅
huangtiancheng 在职认证  发表于 2021-1-17 20:54:07 |只看作者 |坛友微信交流群
乐天天12300 发表于 2021-1-14 22:08
感谢大神

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

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

GMT+8, 2024-4-28 13:21