SAS中文论坛

标题: -------请教一个不同数据集之间的乘法问题(汇率转换)------!!! [打印本页]

作者: shiyiming    时间: 2011-2-15 00:03
标题: -------请教一个不同数据集之间的乘法问题(汇率转换)------!!!
题目: 怎么把销售额从欧元根据当天的汇率换成美元。 (很多天的汇率没有,需要用上次的汇率代替)。


(欧元换美元)
date       rate
2009-1-9 1.87
2009-1-9 1.67
2009-1-9 1.9
2009-1-9 1.94
2009-1-9 1.15
2009-1-16 1.17
2009-1-16 1.1
2009-1-16 1.16
2009-1-16 1.18
2009-1-16 1.25
2009-1-23 1.28
2009-1-23 1.2
2009-1-23 1.17
2009-1-23 1.21
2009-1-23 1.13
2009-2-6 1.14
2009-2-6 1.2
2009-2-6 1.14

date       sales
2009-1-9 199
2009-1-9 187
2009-1-9 178
2009-1-9 100
2009-1-9 100
[color=#FF0000:2mnjlnci]2009-1-10 600
2009-1-11 122
2009-1-12 661
2009-1-13 168
2009-1-14 343[/color:2mnjlnci]2009-1-16 188
2009-1-16 199
2009-1-16 177
2009-1-16 112
2009-1-16 123
2009-1-23 128
2009-1-23 142
2009-1-23 117
2009-1-23 121
2009-1-23 113
2009-2-6 114
2009-2-6 122
2009-2-6 114

数据很多,只是举个例子
不会的地方是,不知道如何让系统在没有当天汇率的时候自动使用上次汇率!!!

最好能给我commands
作者: shiyiming    时间: 2011-2-15 23:39
标题: Re: -------请教一个不同数据集之间的乘法问题(汇率转换)------!!!
经由 dapangmao 前辈指点,小弟写了一段code,希望能满足要求:
[code:9p6j9t6v]
data rate;
        input date yymmdd10. rate;
        format date yymmdd10.;
datalines;
2009-1-9 1.87
2009-1-9 1.67
2009-1-9 1.9
2009-1-9 1.94
2009-1-9 1.15
2009-1-16 1.17
2009-1-16 1.1
2009-1-16 1.16
2009-1-16 1.18
2009-1-16 1.25
2009-1-23 1.28
2009-1-23 1.2
2009-1-23 1.17
2009-1-23 1.21
2009-1-23 1.13
2009-2-6 1.14
2009-2-6 1.2
2009-2-6 1.14
;
run;
data sales;
        input date yymmdd10. sales;
        format date yymmdd10.;
datalines;
2009-1-9 199
2009-1-9 187
2009-1-9 178
2009-1-9 100
2009-1-9 100
2009-1-10 600
2009-1-11 122
2009-1-12 661
2009-1-13 168
2009-1-14 343
2009-1-16 188
2009-1-16 199
2009-1-16 177
2009-1-16 112
2009-1-16 123
2009-1-23 128
2009-1-23 142
2009-1-23 117
2009-1-23 121
2009-1-23 113
2009-2-6 114
2009-2-6 122
2009-2-6 114
;
run;
proc sort data=rate;
        by date;
run;
proc sort data=sales;
        by date;
run;
data all (drop=temp);
        merge rate sales;
        by date;
    retain temp;
    if rate='.'  then rate=temp;
    else temp=rate;
        sales_new=rate*sales;
run;
[/code:9p6j9t6v]




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