楼主: yingxin0824
2026 1

SAS中当符合某个条件整列变量都为0!求助大家! [推广有奖]

  • 1关注
  • 0粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
29630 个
通用积分
1.3500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
426 点
帖子
37
精华
0
在线时间
229 小时
注册时间
2012-2-13
最后登录
2024-4-25

楼主
yingxin0824 在职认证  发表于 2016-3-14 09:37:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问:当符合某一规则时,整列变量都变为同一值,应该怎么操作呢?
例如:

  number       id        inorder    num     s1       s2       s3       s4
    1001         A             1          0
    2003         A             2          0
    2015         A             3          1
    4123         A             4          0

按id分组后,当num=0时,inorder=1,则s1都为0
                   当num=0时,inorder=2,则s2都为0
                   当num=0时,inorder=4,则s4都为0
……

自己写的程序:
proc sort data=a1;by id;run;
data a2;set a1;
array s{4};
if num=0 then s{inorder}=0;run;

结果发现不对,对于第三条记录,s1就不为0。
不知道应该怎样修改呢?
希望得到大家的帮助!!!


二维码

扫码加我 拉你入群

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

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

关键词:求助大家 Number Order array Data SAS

沙发
孤单的我们 发表于 2016-3-14 10:06:20
  1. data a1;
  2.         input number id$ inorder num ;
  3. cards;
  4. 1001 A 1 0
  5. 2003 A 2 0
  6. 2015 A 3 1
  7. 4123 A 4 0
  8. ;
  9. run;

  10. data a2;
  11. set a1;
  12. array s{4} s1-s4;
  13.         do i=1 to dim(s);
  14. if num=0 & inorder=i then s{i}=0;
  15. end;
  16. run;

  17. proc sql noprint;
  18.         create table a3 as
  19.         select num,id,inorder,number,max(s1) as s1,max(s2) as s2,max(s3) as s3,max(s4) as s4 from a2;
  20. quit;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 22:16