楼主: jjjustina
1822 6

[问答] SAS 如何拼接表,两个观测数量不一致的表,让小表复制n次与大表数量相同 [推广有奖]

  • 0关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
974 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
4
精华
0
在线时间
35 小时
注册时间
2019-1-30
最后登录
2020-11-9

楼主
jjjustina 发表于 2020-10-21 19:02:05 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有A B两个表,横向拼接,不用匹配任何字段
假如A表有100个观测,B表有26个观测 让AB表拼接,B复制多次与A匹配 没有空白值(如图) image20201021190206.jpg
二维码

扫码加我 拉你入群

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

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


沙发
zhaoyunxiao 发表于 2020-10-21 21:22:12
楼主想要的是,B表的每条观测都和A表每条观测匹配嘛?也就是生成2600条观测?

藤椅
jjjustina 发表于 2020-10-22 10:45:39 来自手机
zhaoyunxiao 发表于 2020-10-21 21:22
楼主想要的是,B表的每条观测都和A表每条观测匹配嘛?也就是生成2600条观测?
没有,想要直接拼AB,观测数跟大表(A)一致,一共生成有A、B表所有字段的100条观测

板凳
jg.sas 发表于 2020-10-22 15:57:10
基本思路:重复B数据集n次后直接和A 按照 by _n_进行merge

报纸
jg.sas 发表于 2020-10-22 16:00:43
  1. data aa;
  2.         set sashelp.cars;
  3.         byvar=_n_;
  4. run;

  5. data bb;
  6.         bb=1;
  7. run;
  8. data bb1;
  9.         set bb;
  10.         do i=1 to 4;
  11.                 output;
  12.         end;
  13. run;
  14. data bb1;
  15.         set bb1;
  16.         byvar=_n_;
  17. run;

  18. data final;
  19.         merge aa(in=a) bb1;
  20.         by byvar;
  21.         if a;
  22. run;
复制代码

地板
jg.sas 发表于 2020-10-22 16:21:28
jg.sas 发表于 2020-10-22 16:00
创建bb1的时候有点问题,还是用macro 级别去创建数据集吧
  1. data bb1;
  2.         set
  3.         %do ii=1 %to 4;
  4.                 bb
  5.         %end;
  6.         ;
  7. run;
复制代码

7
jjjustina 发表于 2020-11-17 14:29:15 来自手机
jg.sas 发表于 2020-10-22 16:21
创建bb1的时候有点问题,还是用macro 级别去创建数据集吧
感谢!!已解决

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

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