SAS中文论坛

标题: 菜鸟求助。。。在线等大侠! [打印本页]

作者: shiyiming    时间: 2008-5-10 10:04
标题: 菜鸟求助。。。在线等大侠!
(all_no)       all_sum      first_no            first_sum  
F1063914  |     185.00        |  F1063914      |17.60      
F1070114  |   744.29                        |  F1070114      |4.34      
F1071514  |           375.92        |  F1071514      |1.09      
F1071614  |           983.71        |  F1071614      |81.60      
F1071714  |           284.86        |  F1071714      |33.92      
F1071814  |            22.82          |  F1071814      |59.78      
F1071914         |     923.36        |  F1072014      |5.99      
F1072014         |     476.76        |  F1072114      |3.21      
F1072114         |     354.58        |  F1072214      |7.29      
F1072214  |            51.74          |  F1072314      |0.35      
F1072314  |            432.09        |  F1072514      |7.81      
F1072414  |           407.43        |  F1072614      |3.31      
F1072514  |           80.12          |  F1072714      |4.69      
......
first_no 是 all_no  的子集,需要计算在first_no = all_no 的条件下 ,通过对应的first_sum和all_sum 求 first_sum/all_sum
(all_no是唯一的)
作者: shiyiming    时间: 2008-5-10 14:20
标题: 怎么实现循环匹配计算???求高人出手指点下
(all_no) all_sum first_no first_sum
F1063914 | 185.00 | F1063914 |17.60
F1070114 | 744.29 | F1070114 |4.34
F1071514 | 375.92 | F1071514 |1.09
F1071614 | 983.71 | F1071614 |81.60
F1071714 | 284.86 | F1071714 |33.92
F1071814 | 22.82 | F1071814 |59.78
F1071914 | 923.36 | F1072014 |5.99
F1072014 | 476.76 | F1072114 |3.21
F1072114 | 354.58 | F1072214 |7.29
F1072214 | 51.74 | F1072314 |0.35
F1072314 | 432.09 | F1072514 |7.81
F1072414 | 407.43 | F1072614 |3.31
F1072514 | 80.12 | F1072714 |4.69
......
first_no 是 all_no 的子集,找出匹配相等的all_no 和first_no ,并计算对应的 first_sum/all_sum

data exer.result;
  set exer.Sum ;
  where  all_no = first_no ;
  result = first_sum / all_sum ;
run;

结果是只算了前面6条,后面就没了,恳请高手指点,要不我毕不了业了。。。。。谢谢
F1063914 | 185.00 | F1063914 |17.60     
F1070114 | 744.29 | F1070114 |4.34
F1071514 | 375.92 | F1071514 |1.09
F1071614 | 983.71 | F1071614 |81.60
F1071714 | 284.86 | F1071714 |33.92
F1071814 | 22.82 | F1071814 |59.78
作者: shiyiming    时间: 2008-5-10 14:56
标题: Re: 菜鸟求助。。。在线等大侠!
你的all_no和first_no 不完全匹配,你的程序只能计算出在同一个观测中匹配的,对于不同观测没有计算
你注意看下,你的第7个观测,两个all_no 和first_ no 就不匹配了,所以不能计算
[code:u4bp3c36]data a;
        infile datalines dlm='|';
        input all_no$ all_sum first_no$ first_sum;
        datalines;
F1063914 | 185.00 | F1063914 |17.60
F1070114 | 744.29 | F1070114 |4.34
F1071514 | 375.92 | F1071514 |1.09
F1071614 | 983.71 | F1071614 |81.60
F1071714 | 284.86 | F1071714 |33.92
F1071814 | 22.82  | F1071814 |59.78
F1071914 | 923.36 | F1072014 |5.99
F1072014 | 476.76 | F1072114 |3.21
F1072114 | 354.58 | F1072214 |7.29
F1072214 | 51.74  | F1072314 |0.35
F1072314 | 432.09 | F1072514 |7.81
F1072414 | 407.43 | F1072614 |3.31
F1072514 | 80.12  | F1072714 |4.69
;
data a1;
        set a(keep=all_no all_sum);
run;
data a2;
        set a(keep=first_no first_sum rename=(first_no=all_no));
run;
data c;
        merge a1 a2;
        by all_no;
        result=first_sum/all_sum;
run;[/code:u4bp3c36]
看看这个是否是你想要的结果
作者: shiyiming    时间: 2008-5-10 15:36
标题: Re: 菜鸟求助。。。在线等大侠!
太感谢了!!!正是我要的结果! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2