楼主: caibirdcnb
1459 0

[问答] 数据集横向多个判断条件分别输出,请问如何编程避免多次读原始数据? [推广有奖]

  • 0关注
  • 36粉丝

讲师

47%

还不是VIP/贵宾

-

威望
0
论坛币
1367 个
通用积分
16.5538
学术水平
67 点
热心指数
70 点
信用等级
64 点
经验
6762 点
帖子
206
精华
2
在线时间
433 小时
注册时间
2011-8-31
最后登录
2023-9-23

5论坛币
基础不好,编程真累。上图是我的原始数据,下图是期望的输出结果。
过程就是对原始数据var1-varN进行各种条件判断,符合条件就输出一段信息,关键是一行数据有N个判断条件,也就是说一行数据会有N条输出。

快照7.png

快照8.png

现在我的判断是这样的:

先判断一个条件,一次判断所有行。
data out(keep=A B C);
set in;
if 满足条件1 then 行数保留,其余行删除。
    A="XXX";
    B="XXXX";
    C="XX";
run;
把out数据集用proc append附加到某个数据集。

再判断第二个条件,同样一次判断所有行。
data out(keep=A B C);
set in;
if 满足条件1 then 行数保留,其余行删除。
    A="YYY";
    B="YYYY";
    C="YY";
run;

把out数据集用proc append附加到某个数据集。


如此循环直到所有条件写完。

这样的问题之一就是重复打开原始数据集多次。
我希望程序结构是:
data _null_;
set in;
if 满足条件1 then do;
    A="XXX";
    B="XXXX";
    C="XX";
   把A B C附到某个数据集;
end;
if 满足条件2 then do;
    A="YYY";
    B="YYYY";
    C="YY";
   把A B C附到某个数据集;
end;

...直到多个条件判断完毕。
run;


请问如何实现?或者其它更合理的结构请分享。谢谢!



关键词:原始数据 数据集 append Then Data
您需要登录后才可以回帖 登录 | 我要注册

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

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

GMT+8, 2024-4-27 10:14