楼主: 孤单的我们
2169 6

关于数据集合并的问题 [推广有奖]

  • 4关注
  • 12粉丝

已卖:4份资源

教授

4%

还不是VIP/贵宾

-

威望
0
论坛币
5096 个
通用积分
1154.4122
学术水平
136 点
热心指数
159 点
信用等级
126 点
经验
33121 点
帖子
650
精华
0
在线时间
1621 小时
注册时间
2012-9-12
最后登录
2025-2-19

楼主
孤单的我们 发表于 2015-1-6 14:20:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
合并A、B2个数据集,共同变量是num,除此之外没有共同变量。假设A数据集中num=2的观测有3条,B数据集中num=2的观测有2条。
如何使生成的结果里,num=2的观测只有3条?来自B数据集的部分,在第三条生成为缺失?

SQL合并的话是二者的笛卡尔乘积。现在我只想取二者中最大的。

求指教
二维码

扫码加我 拉你入群

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

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

关键词:数据集 NUM 求指教 最大的 sql 笛卡尔 最大的 如何

回帖推荐

teqel 发表于4楼  查看完整内容

我的思路:生成一个新的变量num1,再做合并

沙发
温小样儿 发表于 2015-1-6 14:25:45
sql合并之后再用max函数不就行了吗

藤椅
sushe1527 发表于 2015-1-6 14:46:33
什么3条,2条 你敲出来举例不得了 也没几句话

板凳
teqel 发表于 2015-1-6 14:55:23
我的思路:生成一个新的变量num1,再做合并
  1. data a;
  2. input num x;
  3. cards;
  4. 1        1
  5. 1        2
  6. 2        3
  7. 2        4
  8. 2        5
  9. 3        6
  10. ;

  11. data b;
  12. input num y$;
  13. cards;
  14. 1        a
  15. 1        b
  16. 1        c
  17. 2        d
  18. 2        e
  19. 4        f
  20. ;

  21. data a1;
  22. set a;
  23. by num;
  24. if first.num then temp1=1;
  25. else temp1+1;
  26. num1=put(num, z4.)||put(temp1, z4.);
  27. run;

  28. data b1;
  29. set b;
  30. by num;
  31. if first.num then temp1=1;
  32. else temp1+1;
  33. num1=put(num, z4.)||put(temp1, z4.);
  34. run;

  35. data want;
  36. merge a1 b1;
  37. by num1;
  38. drop num1 temp1;
  39. run;
复制代码

报纸
孤单的我们 发表于 2015-1-6 15:07:02
teqel 发表于 2015-1-6 14:55
我的思路:生成一个新的变量num1,再做合并
谢谢 学习了

地板
Data_Miner_li 发表于 2015-1-6 23:28:09
不用楼上那么复杂的,直接用merge by 合并数据集,可以结合if设置一个暂时保留的新变量,进行1、0设置就可以,一个很简单的data步就解决了。帮助文档里有例子

7
teqel 发表于 2015-1-7 00:49:48
Data_Miner_li 发表于 2015-1-6 23:28
不用楼上那么复杂的,直接用merge by 合并数据集,可以结合if设置一个暂时保留的新变量,进行1、0设置就可以 ...
你可以自己试试

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

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