楼主: zuncle_aha
2160 3

[问答] 求助如何将某一变量的数值固定 [推广有奖]

  • 0关注
  • 0粉丝

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
936 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
96 点
帖子
6
精华
0
在线时间
17 小时
注册时间
2009-4-11
最后登录
2014-5-5

楼主
zuncle_aha 发表于 2011-12-30 19:21:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如果某个值为缺省,就改为这个变量的最大值proc sql;
create table b as
select * from a
having beta=max(beta);
quit;
proc sql ;
select beta into: beta from b ;quit;
data c;
set a;
if beta=. then beta=β
run;




这个程序应该怎么改呢?
二维码

扫码加我 拉你入群

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

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

关键词:proc sql Select having Create Elect 如何

沙发
shenliang_111 发表于 2011-12-30 19:38:03
  1. data a;
  2. input x;
  3. cards;
  4. 1
  5. 2
  6. 3
  7. 4
  8. .
  9. 6
  10. 4
  11. 7
  12. ;
  13. /*method one*/
  14. proc sql;
  15. create table result(rename=(xx=x)) as
  16. select case when(x is missing) then max(x)
  17. else x
  18. end as xx
  19. from a;
  20. quit;
  21. /*method two*/
  22. data result2;
  23. retain max;
  24. if _n_=1 then do until(last);
  25. set a end=last;
  26. max=max(x,max);
  27. end;
  28. set a;
  29. x=ifn(missing(x),max,x);
  30. drop max;
  31. run;
  32. /*method three*/
  33. proc sql noprint;
  34. select max(x) into :max from a;
  35. quit;
  36. data result3;
  37. set a;
  38. if missing(x) then x=&max.;
  39. run;
复制代码

藤椅
bobguy 发表于 2012-1-8 03:22:57
Here is a simpler solution.

data a;
input x;
cards;
1
2
3
4
.
6
4
7
;

proc sql;
  select case
     when x > . then x
         else  max(x)
     end as y
  from a
;
quit;

板凳
jingju11 发表于 2012-1-8 10:00:15
# if from a vector in IML:
  1.   ...
  2.   x[loc(x =.)] =x[<>];
  3. quit;
复制代码
JingJu

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 11:57