楼主: Kaeder
1338 1

如何保留多列分组内的首尾两项? [推广有奖]

  • 0关注
  • 0粉丝

VIP1+

高中生

45%

还不是VIP/贵宾

-

威望
0
论坛币
8735 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1841 点
帖子
14
精华
0
在线时间
28 小时
注册时间
2016-5-19
最后登录
2020-1-19

楼主
Kaeder 发表于 2016-10-21 20:30:56 |AI写论文
5论坛币
我有这样的数据如下:
SYMBOL DATE PRICE
AMD 1 12
AMD 1 11
AMD 1 13
AMD 2 12
AMD 2 12
AMD 2 13
KO 1 4
KO 1 5
KO 1 5
KO 2 4
KO 2 6
KO 2 5
我想按照SYMBOL*DATE分组,每组保留首尾两项。也就是说把上面的数据分成AMD-1, AMD-2, KO-1, KO-2这几组,然后每组保留首尾两项。我想过直接把它们转换成数字再相乘,但是数据集比较大,不知道会不会出现乘积相等但是SYMBOL、DATE并不等的情况。

如果只按一列来分组,那么用FIRST和LAST两个变量就能筛出首尾项。但是如果要按两列甚至多列来分组的话,怎样筛出首尾项呢?

关键词:symbol Price First date Rice 如何

沙发
wwang111 发表于 2016-10-21 21:12:55
是这个意思?

proc sort data=test;
by symbol date;
run;

data wanted;
set test;
by symbol date;
if first.date or last.date;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 01:11