楼主: Zac3117
4366 5

[问答] SAS 如何只取最大日期的資料? [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

90%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
46 点
帖子
3
精华
0
在线时间
3 小时
注册时间
2018-11-4
最后登录
2018-12-9

楼主
Zac3117 发表于 2018-11-4 16:58:13 来自手机 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
例如:
Name date.            Sales
Xxxx    2/Aug/2018         1000
           10/Dec/2018         2000
            2/Jan/2018.          4000
最後結果為:
Xxxx 10/Dec/2018          2000 (total sales:7000)?
想了好久都不懂 跪求答案
二维码

扫码加我 拉你入群

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

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

关键词:sales Total sale name date

已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

沙发
逍遥梦蝶 发表于 2018-11-4 17:08:04 |只看作者 |坛友微信交流群
至少有三种方法吧。

第一种方法先sort Name和descending date,再sort name,nodupkey吧。

第二种方法,proc means算出每个name下date的最大值,再merge回来。

第三种方法,用sql取date的最大值吧。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

藤椅
Zac3117 发表于 2018-11-4 17:17:24 |只看作者 |坛友微信交流群
謝謝你 我去試一下

使用道具

板凳
Zac3117 发表于 2018-11-4 17:38:12 |只看作者 |坛友微信交流群
逍遥梦蝶 发表于 2018-11-4 17:08
至少有三种方法吧。

第一种方法先sort Name和descending date,再sort name,nodupkey吧。
有是data step 的做法嗎?
我想是創兩個Name 再比較,最大的存留 而sale 也會跟着是日期最大的,
現在我用f _n_=1 then max=latest_date ;
else if latest_date > max then  max= latest_date ;
retain max;

但是max 的數值固定了,並不改變

使用道具

报纸
woodolt 发表于 2018-11-4 22:22:28 |只看作者 |坛友微信交流群
你的数据name不是每一行都有,下面是先把name补齐,再直接取日期最大的一条
data a;
input name $ date ddmmyy10. sales;
format date date11.;
cards;
m  02082018 1000
.  10122018 2000
.  02012018 4000
;
run;
data b;
set a; if ~missing(name) then name1=name;
retain name1;
drop name;
rename name1=name;
run;
proc sort data=b out=c; by name date sales;run;
data d;
set c; by name date sales;
if last.name then output;
run;
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

使用道具

地板
woodolt 发表于 2018-11-4 22:23:16 |只看作者 |坛友微信交流群
data a;
input name $ date ddmmyy10. sales;
format date date11.;
cards;
m  02082018 1000
.  10122018 2000
.  02012018 4000
;
run;
data b;
set a; if ~missing(name) then name1=name;
retain name1;
drop name;
rename name1=name;
run;
proc sort data=b out=c; by name date sales; run;
data d;
set c; by name date sales;
if last.name then output;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 08:47