作者west1996 ()
看板Statistics
标题Re: [程式] 输出符合条件式的变数答案
时间Sun Sep 23 22:23:34 2018
※ 引述《linda841004 (水凝结)》之铭言:
: [软体程式类别]:SAS
:
: [程式问题]:增加一个变数,能够输出条件句符合的变数答案
:
: [软体熟悉度]: 熟悉
: [问题叙述]:
: 我有一笔资料(如下图)
: http://i.imgur.com/zmclQvw.jpg
: 因为id=2时,a1=1,a3=3通过条件且
: id=8时,a1=1,a2=3通过条件
: 就会输出成下图的样子http://i.imgur.com/2dpYSf2.jpg
: 但是红框框select栏,要输出通过的条件
: (我不知道除了写多个if条件式以外的方法)---因为真实资料有很多个if要做挑选
: 请大神协助!
: [程式范例]:
: data aa;
: input id a1 a2 a3;
: cards;
: 1 1 1 2
: 2 1 2 3
: 5 2 1 1
: 8 1 3 1
: ;
: run;
: data bb;
: set aa;
: if a1=1 & (a2^in(1 2) | a3^in(1 2))then
: do;
: wrong="有错";
: output;
: end;
: proc print;
: run;
: -----
: Sent from JPTT on my HTC_U-3u.
这种需要留下判断过程的case通常不要写成复合判断式会比较简单
调整逻辑
step1: 对个别判断式留下注记,个别判断式
step2: 对累积的注记作最後判断
if a1=1 then do;
select='a1=1';
if a2^in(1 2) then select=cats(select,',','a2=',a2);
if a3^in(1 2) then select=cats(select,',','a3=',a3);
end;
........(先把所有逻辑判断完)
if select ^=' ' then do;
wrong='有错';
output;
end;
p.s.上面只是示意,if的结构还有最终判断的策略会取决於实际逻辑有多复杂而有所
变化
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.162.191
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1537712617.A.BA3.html
1F:推 linda841004: 谢谢解答,这个方法我有想到(只是觉得运用起来很... 09/24 13:48
2F:→ linda841004: ....繁杂...) 09/24 13:48
3F:→ linda841004: 感谢w大,中秋节快乐! 09/24 13:48