楼主: wayne0524
1395 8

[原创博文] 高手进!请教如何不遗失展示时的空值! [推广有奖]

  • 25关注
  • 6粉丝

已卖:1370份资源

讲师

40%

还不是VIP/贵宾

-

威望
0
论坛币
4534 个
通用积分
8.4306
学术水平
30 点
热心指数
44 点
信用等级
30 点
经验
8310 点
帖子
367
精华
0
在线时间
488 小时
注册时间
2007-2-3
最后登录
2022-11-2

楼主
wayne0524 发表于 2012-8-2 00:45:35 |AI写论文
20论坛币
代码如下                                                                                                                                                                                                                                                      
ods html file='D:\SAS程序数据集\2012Q2\2012Q2评估\bbaa.html';                                                                                                                                                                                         
options missing=" ";                                                                                                                                                                                                                                 
proc report data= ht.bbbbb out=retest nowd;                                                                                                                                                                                                           
column riskcode time unpaid1;                                                                                                                                                                                                                        
define riskcode/group ;                                                                                                                                                                                                   
define
time/group ;
define unpaid1/analysis ;                                                                                                                                                                                                                             
run;                                                                                                                                                                                                                                                  
ods html close;                                                                                                                                                                                                                                       
SAS跑完展示结果如下:                     
                                          riskcode   time        unpaid1
                                             car       2010Q1          500
                                                        2010Q2         1000
                                                        2010Q3         2000
                                                        2010Q4         1000
                                          noncar    2010Q1         2000
                                                         2010Q3         1300


noncar 由于清单没有2010Q2 和Q4的条数  所以展示的时候被遗失了,如何修改代码让noncar或者更多的 类别都按照 一个完整time的分类显示??(此处只是举例,实际time 不止2010这一年 ,有若干年,而riskcode的分类也不止两类,但是除了car,剩下的险种 都有遗失,我的意思就是如何让展示的结果不遗失,都按car的time排列,如果清单没有,则time照样排列,只是让unpaid1显示为0,请问如何实现??)
谢谢!

关键词:proc report Analysis missing options Analysi report 如何 遗失 file 程序

回帖推荐

levinjiang 发表于6楼  查看完整内容

好多小步骤啊,作为参考吧

本帖被以下文库推荐

沙发
lynette_89 发表于 2012-8-2 00:50:55
可以在report步之前做个dummy set
将数据和dummy set, merge后出report

藤椅
lynette_89 发表于 2012-8-2 00:55:43
类似于:
riskcode   time       ord1    ord2
    car       2010Q1       1        1
               2010Q2       1        2
               2010Q3       1        3
               2010Q4       1        4
  noncar    2010Q1       2        1
               2010Q2       2        2
               2010Q3       2        3
               2010Q4       2        4

类似这种dummy

板凳
lynette_89 发表于 2012-8-2 00:56:38
我也想看看大神们有什么方法,学习学习~~~~~~~~~~~~

报纸
levinjiang 发表于 2012-8-2 14:16:35
给个比较笨的思路
先提取所有riskcode和年的组合,再将其与四个季度做组合。
再merge一下就差不多了

地板
levinjiang 发表于 2012-8-2 14:38:58
  1. DATA A;
  2.    INPUT RISKCODE $ TIME $ UNPAID1;
  3. DATALINES;
  4. car        2010Q1        500
  5. car        2010Q2        1000
  6. car        2010Q3        2000
  7. car        2010Q4        1000
  8. noncar        2010Q2        2000
  9. noncar        2010Q3        1300
  10. noncar        2009Q1        1000
  11. ;
  12. RUN;

  13. DATA B;
  14.    INPUT SEASON $;
  15. DATALINES;
  16. Q1
  17. Q2
  18. Q3
  19. Q4
  20. ;
  21. RUN;

  22. DATA C ;
  23.    SET A;
  24.    YEAR=SUBSTR(TIME,1,4);
  25.    SEASON=SUBSTR(TIME,5,2);
  26. RUN;

  27. PROC SORT DATA=C OUT=D(KEEP=RISKCODE YEAR) NODUPKEY;
  28.    BY RISKCODE YEAR;
  29. RUN;

  30. PROC SQL;
  31.    CREATE TABLE E AS
  32.    SELECT * FROM D CROSS JOIN B;
  33. QUIT;

  34. PROC SORT DATA=E;
  35.       BY RISKCODE YEAR SEASON;
  36. RUN;
  37. PROC SORT DATA=C;
  38.       BY RISKCODE YEAR SEASON;
  39. RUN;

  40. DATA F;
  41.    LENGTH TIME $6;
  42.    MERGE E C;
  43.    BY RISKCODE YEAR SEASON;
  44.    IF UNPAID1=. THEN UNPAID1=0;
  45.    IF TIME=. THEN TIME=CATS(YEAR,SEASON);
  46.    DROP YEAR SEASON;
  47. RUN;
复制代码
好多小步骤啊,作为参考吧
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

7
wayne0524 发表于 2012-8-3 18:57:30
lynette_89 发表于 2012-8-2 00:50
可以在report步之前做个dummy set
将数据和dummy set, merge后出report
dummy set?
大哥,小弟初学,不是很懂这个是啥,能再具体明示下不?
谢谢!

8
wayne0524 发表于 2012-8-3 18:58:47
levinjiang 发表于 2012-8-2 14:38
好多小步骤啊,作为参考吧
你的意思是加 补充数据条数进去呗?

9
lynette_89 发表于 2012-8-4 20:01:39
wayne0524 发表于 2012-8-3 18:57
dummy set?
大哥,小弟初学,不是很懂这个是啥,能再具体明示下不?
谢谢!
“类似于:
riskcode   time       ord1    ord2
    car       2010Q1       1        1
               2010Q2       1        2
               2010Q3       1        3
               2010Q4       1        4
  noncar    2010Q1       2        1
               2010Q2       2        2
               2010Q3       2        3
               2010Q4       2        4

类似这种dummy


我不是在楼上说了吗

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

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