楼主: lulu66898
1394 2

数据集合并 [推广有奖]

  • 0关注
  • 1粉丝

博士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
1671 个
通用积分
4.4127
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
643 点
帖子
48
精华
0
在线时间
461 小时
注册时间
2009-4-9
最后登录
2024-3-12

5论坛币
我有数据集1和数据集2,想合并成数据集3的样子,求指导~~
数据集1只有变量A,数据集2只有变量B,最后我想得到的数据集3是这个样子:
数据集1:
a
A1   
A2
A3
数据集2:
b
B1
B2
B3
数据集3:
a     b
A1   B1
A1   B2
A1   B3
A2   B1
A2   B2
A2   B3
A3   B1
...

最佳答案

wsddzr 查看完整内容

Cartesian Product吗 LZ你看这样符合你的要求吗
关键词:数据集 求指导
沙发
wsddzr 发表于 2015-6-30 14:32:27 |只看作者 |坛友微信交流群
Cartesian Product吗
LZ你看这样符合你的要求吗
  1. data date1;
  2. input a:$2.;
  3. cards;
  4. a1
  5. a2
  6. a3
  7. run;
  8. data date2;
  9. input b:$2.;
  10. cards;
  11. b1
  12. b2
  13. b3
  14. run;
  15. proc sql;
  16. create table data3 as select * from date1,date2;
  17. quit;
  18. proc print data=data3;
  19. run;
复制代码



复制代码

已有 1 人评分热心指数 收起 理由
realtemper + 1 同意,基本上就是這樣...

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

使用道具

藤椅
realtemper 发表于 2015-7-1 10:48:47 |只看作者 |坛友微信交流群
通常是用二樓的 proc sql 最簡單(當然,賞金請全給二樓)。不過在 data step 也可以利用 do 迴圈來完成這件事,示例如下,供參考:

  1. proc sort data=a out=b;
  2.         by ID;
  3. run;

  4. data a;
  5.         input a $;
  6.         cards;
  7. A1   
  8. A2
  9. A3
  10. ;
  11. data b;
  12.         input b $;
  13.         cards;
  14. B1
  15. B2
  16. B3
  17. ;
  18. data merge_do(drop=i);
  19.         set a;
  20.         do i = 1 to NN;
  21.                 set b nobs=NN point=i;
  22.                 output;
  23.         end;
  24. run;
  25. proc print data=merge_do;
  26. run;
复制代码


結果:
Obsab
1A1B1
2A1B2
3A1B3
4A2B1
5A2B2
6A2B3
7A3B1
8A3B2
9A3B3




已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-26 20:04