2948 8

[有偿编程] 求助!!!如何将某个变量的某个观测值赋给之后的11行观测(要能批处理) [推广有奖]

  • 5关注
  • 2粉丝

博士生

1%

还不是VIP/贵宾

-

威望
0
论坛币
76 个
通用积分
2.0000
学术水平
0 点
热心指数
0 点
信用等级
3 点
经验
14785 点
帖子
63
精华
0
在线时间
354 小时
注册时间
2013-9-13
最后登录
2021-2-20

50论坛币
工作簿.zip (9.4 MB) 本附件包括:
  • 工作簿.xlsx
求助!
如何能够将某个变量的某一行的观测值赋给之后的11行观测呢?例如我的数据是对于cusip为00163u10,newdate1为198906时,p2=6,我要把p2=6,赋给cusip相同,newdate1从198907直到199005的观测。要求是对于不断变化的cusip,每个p2都能被赋给之后的11个观测。我的数据情况是:被赋给的数据都来自每一年的6月,但是由于股票上市的时间不同,所以可能存在某些年份完全没有数据的情况(包括当年的6月)。谢谢啦!!!

现在赋值我能够做了,如下:
data r1;
set r;
retain old_p2;
by cusip newdate1;
if p2^=. then old_p2=p2;
else p2=old_p2;
run;
但是由于我的数据不是每个cusip一开始就有数据,所以会出现上一个cusip的最后一个值被赋给了下一个cusip。有没有办法解决呢?比如把每个cusip开始的空缺值删掉,使得每个cusip的p2一开始就是非空缺的呢?

最佳答案

mingfeng07 查看完整内容

试试这个:
关键词:观测值 批处理 RETAIN date else 如何
沙发
mingfeng07 学生认证  发表于 2015-2-9 13:30:53 |只看作者 |坛友微信交流群
少年时代balala 发表于 2015-2-11 09:18
可是结果出来确实被覆盖了,本来应该只有第16行一个8的
试试这个:
  1. data r1(drop=old_p2);
  2. set r;
  3. by  cusip newdate1;
  4. retain old_p2;
  5. if p2^=. then old_p2=p2;
  6. else if p2=. and (input(substr(compress(newdate1),5,2),8.)=6 or first.cusip)  then old_p2=.;
  7. if old_p2=. then delete;
  8. p2=old_p2;
  9. run;
复制代码

使用道具

藤椅
mingfeng07 学生认证  发表于 2015-2-9 22:42:37 |只看作者 |坛友微信交流群
我看你的数据都已经排好序了,而且也在最前面的一行都添加了观测值,那接下来用个retain似乎就可以了啊。

使用道具

mingfeng07 发表于 2015-2-9 22:42
我看你的数据都已经排好序了,而且也在最前面的一行都添加了观测值,那接下来用个retain似乎就可以了啊。
能否具体一点呢?谢谢啦

使用道具

报纸
mingfeng07 学生认证  发表于 2015-2-10 12:13:25 |只看作者 |坛友微信交流群
少年时代balala 发表于 2015-2-10 09:33
能否具体一点呢?谢谢啦
  1. data r1(drop=old_p2);
  2. set r;
  3. retain old_p2;
  4. if p2^=. then old_p2=p2;
  5. else if p2=. and  input(substr(compress(newdate1),5,2),8.)=6 then old_p2=.;
  6. if old_p2=. then delete;
  7. p2=old_p2;
  8. run;
复制代码

使用道具

mingfeng07 发表于 2015-2-10 12:13
但是有一个问题,当某个cusip最开始的几个月没有数据的时候,就会被上一个cusip的最后一个值给覆盖掉。怎么办呢?

使用道具

7
mingfeng07 学生认证  发表于 2015-2-10 21:54:21 |只看作者 |坛友微信交流群
少年时代balala 发表于 2015-2-10 19:09
但是有一个问题,当某个cusip最开始的几个月没有数据的时候,就会被上一个cusip的最后一个值给覆盖掉。怎 ...
这个问题你不是提过了么,你不是说想要删去这些吗?我的代码就是这个目的啊。

使用道具

可是结果出来确实被覆盖了,本来应该只有第16行一个8的 QQ图片20150211091502.png

QQ图片20150211091502.png (1.41 KB)

QQ图片20150211091502.png

使用道具

mingfeng07 发表于 2015-2-11 18:23
试试这个:
可以呢!!谢谢啦~

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 08:41