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