SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 661|回复: 2
打印 上一主题 下一主题

一个关于如何modify问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-7-4 16:31:25 | 只看该作者

一个关于如何modify问题

dataset如下;
stk year month (monthly return)
1     1       1         0.1
1     1       2         0.2
1     1       4         0.6
1     1       12        0.5
1     2       3          0.7
1     2       11        -0.8
2     1       2          0.3
2     1       4           0.6
2     2       3          0.7

n只(n=2)股票两年的月收益率。注意有些股票某些月份是没有显示收益率数据的。现在就想把这些没有月份收益率的都显示为-88,形成一个整体的两年共24个月的数据。

想过按stk分组,把每只股票的数据集和一个含有year (year=1,2) month(month=1-12)的数据集进行merge。不知道这样该如何写sas程序?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-7-6 20:10:50 | 只看该作者

Re: 一个关于如何modify问题

data crackman;
input stk year month monthly_return @;
datalines;
1 1 1 0.1
1 1 2 0.2
1 1 4 0.6
1 1 12 0.5
1 2 3 0.7
1 2 11 -0.8
2 1 2 0.3
2 1 4 0.6
2 2 3 0.7
;
run;
data stand;
do stk=1 to 2;
do year=1 to 2;
  do month=1 to 12;
  output;
  end;
end;
end;
run;
proc sort data=crackman;
by stk year month;
run;
proc sort data=stand;
by stk year month;
run;
data result;
merge crackman stand;
by stk year month;
if monthly_return=. then monthly_return=-88;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-7-7 11:48:47 | 只看该作者

Re: 一个关于如何modify问题

thanks. 方法可行,只不过实际数据中stk有一千只,用do和sort时运行的很慢。看来还是用proc sql效率高些了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 05:09 , Processed in 0.110925 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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