SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 520|回复: 1
打印 上一主题 下一主题

-------请教一个不同数据集之间的乘法问题(汇率转换)------!!!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-2-15 00:03:35 | 只看该作者

-------请教一个不同数据集之间的乘法问题(汇率转换)------!!!

题目: 怎么把销售额从欧元根据当天的汇率换成美元。 (很多天的汇率没有,需要用上次的汇率代替)。


(欧元换美元)
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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-2-15 23:39:26 | 只看该作者

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]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-12 20:29 , Processed in 0.068168 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表