楼主: dxystata
1495 4

根据要求得到数据集 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2016-8-28 10:41:54 |AI写论文
50论坛币
  1. data aaa;
  2. input id x1;
  3. cards;
  4. 1  1
  5. 1  2
  6. 2  1
  7. 3  1
  8. 3  2
  9. 3  3
  10. ;
  11. run;

  12. /*根据id得到x1取值最大的数据集*/
  13. /*id x1 */
  14. /*1  2  */
  15. /*2  1  */
  16. /*3  3  */



  17. data bbb;
  18. input id x1$ x2;
  19. cards;
  20. 1 a 1
  21. 1 a 2
  22. 1 b 1
  23. 1 b 2
  24. 2 a 1
  25. 2 b 1
  26. 3 c 1
  27. 3 c 2
  28. 3 c 3
  29. ;
  30. run;
  31. /*根据id x1 得到x2取值最大的数据集*/
  32. /*id x1 x2*/
  33. /*1  a  2 */
  34. /*1  b  2 */
  35. /*2  a  1*/
  36. /*2  b  1*/
  37. /*3  c  3*/
复制代码
谢谢!

关键词:数据集 Input cards card Data

沙发
一只飞翔的小猪 发表于 2016-8-28 11:25:56
你这个问题没有看懂,这是sas程序语言?根据id 得到 x1最大值数据什么意思?
id是编号吧,x1才是数据,是把x1最大数据的排序出来然后对应的id排序么?一个ID对应一个x1数据,直接对x1排序不就行了??用insight部分可以直接排序的

藤椅
wwang111 发表于 2016-8-28 19:57:00
proc sql;
create table wanted_aaa as
select * from aaa
group by id
having x1=max(x1);
quit;

proc sql;
create table wanted_bbb as
select * from bbb
group by id,x1
having x2=max(x2);
quit;

BTW, 以第一个程序为例,如果对于同一个id,有两条相同的x1,并且两条相同的x1都是最大值,那么两条都会取到;第二个程序也是这样。如果只需要取一条,那么可以改成select distinct * from...

板凳
独木者 发表于 2016-8-29 13:52:44
data _aaa; set aaa; by id; if last.id; run;
data _bbb; set bbb; by id x1; if last.x1; run;

报纸
wang1839 在职认证  发表于 2016-9-23 10:45:51

proc sql;
        create table max1 as select id , max(x1) as max from aaa group by id;
        create table max2 as select id ,x1, max(x2) as max from bbb group by id,x1;
quit;

proc sort data=aaa;
        by id;
run;

proc sort data=aaa;
        by id x1;
run;



data max1;
        set aaa;
        by id;
        if last.id;
run;


data max2;
        set bbb;
        by id x1;
        if last.x1;
run;

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

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