楼主: mengyuy
1187 3

[问答] 数据集合并,一对多 [推广有奖]

  • 0关注
  • 0粉丝

本科生

69%

还不是VIP/贵宾

-

威望
0
论坛币
1108 个
通用积分
1.7931
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
4018 点
帖子
48
精华
0
在线时间
111 小时
注册时间
2012-9-19
最后登录
2024-3-27

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
假设我有两个数据集,一个包含name一个包含year 如下:
  1. Name
  2. A
  3. B
  4. C

  5. Year
  6. 2010
  7. 2011
  8. 2012
复制代码


想在想要year 对应name进行合并,最后想要结果如下
Name  Year
A       2010
A       2011
A       2012
B       2010
B       2011
B       2012
C       2010
C       2011
C       2012
  请问应该如何做啊

二维码

扫码加我 拉你入群

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

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

关键词:数据集 一对多 name year ear sas 合并

回帖推荐

沙发
lovexialulu 发表于 2017-12-19 10:35:55 |只看作者 |坛友微信交流群
不能直接merge吧,都没共同变量;
按照下面的,可以耍流氓试试:
  1. data a;
  2. input Name $;
  3. cards;
  4. A
  5. B
  6. C
  7. ;
  8. run;

  9. data b;
  10. input Year;
  11. cards;
  12. 2010
  13. 2011
  14. 2012
  15. ;
  16. run;

  17. proc sql noprint;
  18. select min(year) into: min from b;
  19. select max(year) into: max from b;
  20. quit;

  21. data c;
  22. set a;
  23. do year=&min to &max;
  24. output;
  25. end;
  26. run;
复制代码

使用道具

藤椅
superguy333 发表于 2017-12-19 20:15:19 |只看作者 |坛友微信交流群
  1. data a;
  2. input Name $;
  3. cards;
  4. A
  5. B
  6. C
  7. ;
  8. run;

  9. data b;
  10. input Year;
  11. cards;
  12. 2010
  13. 2011
  14. 2012
  15. ;
  16. run;
  17. /*SQL语句,natural FULL join  */
  18. PROC SQL;
  19. CREATE TABLE C AS SELECT A.*,B.* FROM  A  A NATURAL FULL JOIN B B
复制代码

使用道具

板凳
mengyuy 发表于 2017-12-19 20:51:58 |只看作者 |坛友微信交流群
superguy333 发表于 2017-12-19 20:15
感谢感谢!

使用道具

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

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

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

GMT+8, 2024-4-20 03:05