楼主: living_stone
6334 11

SAS中怎么剔除每一类的前面几行的观测值? [推广有奖]

  • 5关注
  • 1粉丝

讲师

61%

还不是VIP/贵宾

-

威望
0
论坛币
66 个
通用积分
144.2436
学术水平
6 点
热心指数
6 点
信用等级
7 点
经验
20785 点
帖子
239
精华
0
在线时间
782 小时
注册时间
2008-8-9
最后登录
2025-9-18

楼主
living_stone 发表于 2012-5-4 00:09:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
SAS中怎么剔除每一类的前面几行的观测值?
比如说下表中是一部分数据,实际上id非常多,起始的年月也不一样,怎么把每个id的最初的几行观察值去掉?
id DATE year month return marketcap
3457 19860930 1986 9 -0.057143 4148.59375
3457 19861031 1986 10 -0.242424 3911.53125
3457 19861128 1986 11 0.060000 3002.34375
3457 19861231 1986 12 -0.377358 3182.484375
3457 19870130 1987 1 -0.212121 1981.546875
3457 19870227 1987 2 0.000000 1581.53125
3457 19870331 1987 3 -0.384615 1581.53125
3457 19870430 1987 4 -0.062500 973.25
3457 19870529 1987 5 -0.066667 912.421875
3458 19860228 1986 2 0.020408 6033.125
3458 19860331 1986 3 0.025200 6156.25
3458 19860430 1986 4 0.009901 6217.8125
3458 19860530 1986 5 -0.009804 6279.375
3458 19860630 1986 6 -0.013069 6217.8125
3458 19860731 1986 7 -0.010204 6033.125
3458 19860829 1986 8 0.072165 5971.5625
3458 19860930 1986 9 -0.003077 6402.5
3458 19861031 1986 10 0.039216 6317.625
3458 19861128 1986 11 0.056604 6565.375

二维码

扫码加我 拉你入群

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

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

关键词:观测值 market RETURN month marke return

回帖推荐

mymine 发表于2楼  查看完整内容

/*分类计数*/ proc sort data=temp1; by id date; run; data temp2; set temp1; by id date; if first.id then xx=1; else xx+1; run; /*保留计数大于4的观测*/ data temp3; set temp2; if xx>4; run;

本帖被以下文库推荐

[b][color=Blue]一个人出生以后,在幼年的时候他被各种谎言所填满。当他觉醒的时候,当

沙发
mymine 发表于 2012-5-4 08:15:34
/*分类计数*/
proc sort data=temp1;
by id date;
run;
data temp2;
set temp1;
by id date;
if first.id then xx=1;
else xx+1;
run;
/*保留计数大于4的观测*/
data temp3;
set temp2;
if xx>4;
run;

藤椅
living_stone 发表于 2012-5-4 09:00:35
mymine 发表于 2012-5-4 08:15
/*分类计数*/
proc sort data=temp1;
by id date;
非常感谢。。。。。。
[b][color=Blue]一个人出生以后,在幼年的时候他被各种谎言所填满。当他觉醒的时候,当

板凳
living_stone 发表于 2012-5-4 09:01:47
mymine 发表于 2012-5-4 08:15
/*分类计数*/
proc sort data=temp1;
by id date;
能否加你好友,以后有什么问题可以向你请教。。。。。我的QQ:511187434
[b][color=Blue]一个人出生以后,在幼年的时候他被各种谎言所填满。当他觉醒的时候,当

报纸
austin510 发表于 2012-5-4 09:25:22
建议多看看《SAS编程与数据挖掘商业案例》,该书讨论了很多类似的问题。

地板
living_stone 发表于 2012-5-4 12:18:56
austin510 发表于 2012-5-4 09:25
建议多看看《SAS编程与数据挖掘商业案例》,该书讨论了很多类似的问题。
恩 ,啥子时候去买来看看,谢谢。。。。
[b][color=Blue]一个人出生以后,在幼年的时候他被各种谎言所填满。当他觉醒的时候,当

7
nernernini 发表于 2012-5-10 22:16:01
thanks, good to learn.

8
yongjiang2 发表于 2012-7-4 20:30:55
学习

9
xiaobai922 发表于 2012-7-6 09:58:41
非常巧妙运用了FIRST. 和LAST.非常受用

10
xiaodamo1900 发表于 2012-12-18 12:58:01
mymine 发表于 2012-5-4 08:15
/*分类计数*/
proc sort data=temp1;
by id date;
方法很好,受教了,但是有一个小小的疑问,为什么不需要retain语句,sas每次处理完一条观测值后返回data步PDV不是都是会清空所有变量值么,为什么在没有retain的情况下计数能够一直累加下去?

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

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