作者mono1023 (阿沛)
站内Statistics
标题[程式] 使用sas做西格玛计算
时间Wed May 8 11:39:18 2013
------------------------------------------------------------------------
[软体程式类别]:
sas
[程式问题]:
想将每档基金内的各个持有的股票权重减去半年前那个时点的该股票权重
并且取绝对值
再将这些这些各个股票相减的权重作西格玛加总再除以2
然後会有很多不同基金
note:在这当中我有设一个虚拟变数D 我想将若虚拟变数为1的基金资料
减去半年前的资料
[软体熟悉度]:
低(1~3个月)
[问题叙述]:
各位前辈我想将资料作上述的运算
我的资料格式例如
基金编号 持有金额 caldt_time 股票代号 权重 D
a ... 20050101 1203 ... 0
a ... 20050101 3241 ... 0
a ... 20050101 9321 ... 0
a ... 20050201 1203 ... 0
a ... 20050201 3241 ... 0
a ... 20050201 9321 ... 0
.
.
a ... 20050701 1203 ... 1
a ... 20050701 3241 ... 1
a ... 20050701 0321 ... 1
b ... ... .. ... .
b ... ... .. ... .
b ... ... .. ... .
由上面举例就是在20050701时虚拟变数为1 所以我要用这个时点
的a资料中各个股票(使用股票代码)的权重减去半年前的各个股票权重
再来麻烦看到20050701的第三行的股票0321跟原本9321不一样
所以0321的权重要减去0 然後0减去9321的权重 都要各自取绝对值
最後西格玛相加再除以2
然後每档基金(我用基金编号当id)各自回圈去做
这边我烦恼很久 好像不能用lag跟dif去做
希望有前辈能够解答 或是提点我需要熟悉那些语法
谢谢大家!!
这边我想补充一下 其中caldt_time我已经用mdy函数转成sas内建时间函数
为了方便阅读所以我把它打成日期
-----------------------------------------------------------------------------
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.173.252
※ 编辑: mono1023 来自: 118.160.173.252 (05/08 11:44)
1F:推 tew:要考虑三个 1.两个时期都有股票 2.六个月前有 但是卖光了 05/08 12:36
2F:→ tew:3.新买进的股票 05/08 12:36
3F:→ tew:最佳方法是 每个月的资料都取出来然後用相差六个月的资料合并 05/08 12:37
4F:→ tew:记得依照基金以及股票代号合并 这样直接做简单的两变项相减 05/08 12:39
5F:→ tew:就会相当轻松 05/08 12:39
6F:→ tew:第二个方法 proc sql可以直接处理 05/08 12:40
7F:→ tew:用full join 05/08 12:40
8F:→ mono1023:谢谢你 我去研究一下!! 05/08 13:49