楼主: newhotter
1964 4

[问答] 求助SAS关于数据按周来下移的问题 [推广有奖]

  • 3关注
  • 15粉丝

已卖:1326份资源

副教授

24%

还不是VIP/贵宾

-

威望
0
论坛币
2583 个
通用积分
0.4203
学术水平
11 点
热心指数
17 点
信用等级
16 点
经验
1241 点
帖子
403
精华
1
在线时间
987 小时
注册时间
2011-9-24
最后登录
2025-7-20

楼主
newhotter 学生认证  发表于 2013-2-28 19:00:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
这是一个关于波动率均值的数据,每周算出来一个平均的波动率,比如20020102、20020103、20020104这三天是这一周的所有数据,取了平均值。现在有个让我想了一下午的事情,我改怎么把20020102、20020103、20020104这一周的波动率数据换到20020107、20020108、20020109、20020110、20020111这一周的数据里面去,后面以此类推。等于就是把数据按周来下移的问题。大部分周都是5个数据,但是有少数周里面是3、4个数据,所以这就比较麻烦了。我估计还是要用到week什么的命令,但是我不知道该怎么做了。。求高手们指点指点。。。谢谢了!
附件里是全部数据,后面还贴了部分数据。。


vol.xlsx (35.48 KB)

2002/1/2

0.7789

2002/1/3

0.7789

2002/1/4

0.7789

2002/1/7

0.6923

2002/1/8

0.6923

2002/1/9

0.6923

2002/1/10

0.6923

2002/1/11

0.6923

2002/1/14

0.5819

2002/1/15

0.5819

2002/1/16

0.5819

2002/1/17

0.5819

2002/1/18

0.5819

2002/1/22

0.5932

2002/1/23

0.5932

2002/1/24

0.5932

2002/1/25

0.5932

2002/1/28

1.1761

2002/1/29

1.1761

2002/1/30

1.1761

2002/1/31

1.1761

2002/2/1

1.1761

2002/2/4

1.5426

2002/2/5

1.5426

2002/2/6

1.5426

2002/2/7

1.5426

2002/2/8

1.5426

2002/2/11

0.6661

2002/2/12

0.6661

2002/2/13

0.6661

2002/2/14

0.6661

2002/2/15

0.6661

2002/2/19

1.3232

2002/2/20

1.3232

2002/2/21

1.3232

2002/2/22

1.3232


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:部分数据 Week 波动率 不知道 平均值 平均值 我不知道

<a src=http://www.liuhao.me/>欧拉的博客</a>

沙发
Imasasor 发表于 2013-2-28 19:33:21
仍然沿用一下我原来给你写的程序

proc import datafile="F:return.xls" out=a replace;
run;

data b;
format date yymmdd10.;
set a;
date=input(put(dateindex,8.),anydtdte.);
week=year(date)||"-"||left(week(date));
run;

proc sql;
create table c as
select week,date, mean(ret_cc) as mean from b
group by week;
quit;

data d;
set c;
retain tem;
y=lag(mean);
if first.week then tem=y;
y=tem;
drop tem;
by week notsorted;
run;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
yukiooy + 1 + 1 + 1 收藏
webgu + 30 + 30 + 1 + 1 + 1 版主很卖力。

总评分: 经验 + 30  论坛币 + 30  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

藤椅
newhotter 学生认证  发表于 2013-2-28 19:43:47
Imasasor 发表于 2013-2-28 19:33
仍然沿用一下我原来给你写的程序

proc import datafile="F:return.xls" out=a replace;
谢谢斑竹!不过运行后出来的d数据中提示有0个obs。。。
<a src=http://www.liuhao.me/>欧拉的博客</a>

板凳
newhotter 学生认证  发表于 2013-2-28 19:47:36
Imasasor 发表于 2013-2-28 19:33
仍然沿用一下我原来给你写的程序

proc import datafile="F:return.xls" out=a replace;
谢谢版生!我弄错啦。。。是对的。。斑竹你太强大了。大谢!!!
斑竹你在群里叫什么?
<a src=http://www.liuhao.me/>欧拉的博客</a>

报纸
bobguy 发表于 2013-3-1 07:54:11
You can use a trick int((date-2)/7) to build a week key. This will be continuous cross years and will be correct in values when you have missing values. The left problem would be easy.

libname s excel 'c:\temp\vol.xlsx' access=readonly;


proc print data=s."sheet1$"n;
run;

data temp;
  set s."sheet1$"n (rename=(__2_2002=date    __7789=return));
  week=int((date-2)/7);
run;

proc print;run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 00:33