全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3386 4
2016-02-01
悬赏 10 个论坛币 已解决
我有以下数据集
date                 obs1           obs2   
20150101           3                5
20150101           4                6
20150101           6                4
20150101           5                2
20150102           4                3
20150102            3               5
20150102           5                2
20151013           3                5
20151014            5               3

我想把数集简化成只有一个日期的,然后obs1只取那一天最后一个观测值,obs2为当天所有的汇总,结果如下:
20150101       5     17        
20150102       5     10
20151013       3       5
20151014       5       3
请教高手如何解决??

二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-1 13:58:33
复制代码
二维码

扫码加我 拉你入群

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

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

2016-2-1 14:41:24
Tigflanker 发表于 2016-2-1 14:33
高手能解释下么..看不懂啊,好像行了
二维码

扫码加我 拉你入群

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

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

2016-2-1 15:14:09
if first.date then sum = 0;
就是说在每个PDV读到每一个date的第一条时,将sum这个字段清0

sum + obs2;
然后每一条,将obs2的值累加给sum,注意自加函数在SAS中是自带retain功能的

if last.date;
我只需保留每date组中最后一条观测的值
二维码

扫码加我 拉你入群

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

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

2016-2-1 20:57:24
Tigflanker 发表于 2016-2-1 15:14
if first.date then sum = 0;
就是说在每个PDV读到每一个date的第一条时,将sum这个字段清0
code写的很简洁啊
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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