全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1311 4
2020-03-09
之前已经有过类似的问题,如下:
[问答] 求教SAS中LAG函数的使用 https://bbs.pinggu.org/thread-2692528-1-1.html
但是他这个数据里面price变量是完整没有缺失值的,我的数据里变量有缺失值,我想求出最近的一次非缺失值生成新变量。


借用上面帖子的数据稍作修改,现有如下数据:
stockcode

time

price

1

2004

12

1

2005

13

1

2006

14

1

2007

.

1

2008

16

2

2005

17

2

2006

18

2

2007

19

3

2004

20

3

2005

.

3

2006

22

3

2008

23

4

2006

24

4

2007

25

4

2008

26

4

2009

27

5

2004

.

5

2005

28

5

2006

29

5200730


想做出以下这种格式,请问该如何编写语言呢?求教论坛里的高手解答,万分谢谢!


stockcode

time

price

price_recent

1

2004

12

.

1

2005

13

12

1

2006

14

13

1

2007

.

14

1

2008

16

14

2

2005

17

.

2

2006

18

17

2

2007

19

18

3

2004

20

.

3

2005

.

20

3

2006

22

20

3

2008

23

22

4

2006

24

.

4

2007

25

24

4

2008

26

25

4

2009

27

26

5

2004

.

.

5

2005

28

.

5

2006

29

28

520073029




二维码

扫码加我 拉你入群

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

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

全部回复
2020-3-9 23:06:30
复制代码

二维码

扫码加我 拉你入群

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

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

2020-3-11 09:39:22
Cecilia_Xi 发表于 2020-3-9 23:06
@Cecilia_Xi 谢谢大神,完美实现了我的数据需求!受益匪浅!
二维码

扫码加我 拉你入群

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

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

2020-3-18 23:40:47
白风夕月 发表于 2020-3-11 09:39
@Cecilia_Xi 谢谢大神,完美实现了我的数据需求!受益匪浅!
做了一下修改。若出现中间有多个年份的price值为缺失时,仍然适用(如果lag后的值是用来求年份间的差值的话)。
proc sort data=test;by stockcode time;run;
data want3/*(keep=stockcode time price change)*/;
      set test;
          by stockcode;
          retain price1 ;
          if first.stockcode then price1=.;
          if price ne . then price1=price;
          price2=lag(price1);
          if not first.stockcode and price ne . then change=price1-price2;
run;
二维码

扫码加我 拉你入群

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

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

2020-3-25 13:34:39
Cecilia_Xi 发表于 2020-3-18 23:40
做了一下修改。若出现中间有多个年份的price值为缺失时,仍然适用(如果lag后的值是用来求年份间的差值的 ...
@Cecilia_Xi非常非常感谢,您能考虑得这么全面!
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群