楼主: xts1xts
7249 9

SAS“有条件地”删除重复观测值,如何实现?? [推广有奖]

  • 0关注
  • 1粉丝

博士生

91%

还不是VIP/贵宾

-

威望
0
论坛币
1386 个
通用积分
1.8875
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3084 点
帖子
175
精华
0
在线时间
453 小时
注册时间
2008-5-2
最后登录
2022-12-3

楼主
xts1xts 发表于 2012-5-24 16:35:35 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,对于每个公司(CUSIP)、每天(DATE)的回报率,我只想保留capitalization值最大的观测值,应该如何实现??
二维码

扫码加我 拉你入群

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

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

关键词:如何实现 重复观测 观测值 Capital capita 条件 如何

回帖推荐

eddions 发表于7楼  查看完整内容

本帖被以下文库推荐

沙发
xts1xts 发表于 2012-5-24 16:37:58
我是这样设想的:
proc sort by CUSIP DATE descending capitalization;(capitalization按降序排列)
然后用SQL的“select distinct”,这样是不是默认保留第一个??

藤椅
mymine 发表于 2012-5-24 16:40:28
SQL的select distinct 是在所有变量的数据都一致的情况下保留任意一笔
简单的在你排序的基础上
proc sort data=a out=a nodupkey;
bu cusip date;
run;

板凳
空气骑士 发表于 2012-5-24 16:45:24
你可以在sql中加上限制条件capitalization取最大值啊

报纸
xts1xts 发表于 2012-5-24 16:45:47
mymine 发表于 2012-5-24 16:40
SQL的select distinct 是在所有变量的数据都一致的情况下保留任意一笔
简单的在你排序的基础上
proc sort ...
好的,非常感谢!

地板
xts1xts 发表于 2012-5-24 16:49:59
空气骑士 发表于 2012-5-24 16:45
你可以在sql中加上限制条件capitalization取最大值啊
这样就可以删掉其他的吗?
可以稍微具体点吗?

7
eddions 发表于 2012-5-24 23:39:40
  1. proc sql;
  2.   select cusip max(capitalization) as M_cap
  3.     from sas-data-set
  4.     group by cusip
  5.     order by M_cap;
  6. quit;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

8
xts1xts 发表于 2012-5-25 09:32:40
eddions 发表于 2012-5-24 23:39
非常感谢!正好另一个数据集也要用到类似操作,非常感谢!!!

9
空气骑士 发表于 2012-5-25 10:45:13
如果只是公司、日期和回报率的话,可以写成:
proc sql noprint;
create table capitalization as
  select cusip,date,max(capitalization) as M_capitalization
    from sas-data-set
    group by cusip,date;
quit;
如果还有别的变量就在关联一下吧

10
arnoldsw 发表于 2012-5-25 18:08:56
proc sort nodupkey会保留每个by里面的第一条

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

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