楼主: mengyuy
1575 3

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

  • 0关注
  • 0粉丝

已卖:1份资源

本科生

73%

还不是VIP/贵宾

-

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

楼主
mengyuy 发表于 2017-12-19 05:37:59 |AI写论文

+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
拉您进交流群
GMT+8, 2025-12-9 03:31