楼主: liyichen17
4255 2

如何用SAS进行1个观测值对多个观测值的匹配? [推广有奖]

  • 4关注
  • 1粉丝

讲师

3%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
1.0166
学术水平
4 点
热心指数
5 点
信用等级
2 点
经验
19465 点
帖子
165
精华
0
在线时间
602 小时
注册时间
2012-2-28
最后登录
2022-12-20

楼主
liyichen17 在职认证  发表于 2016-4-22 15:15:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有两个数据集:
数据集A:

序号

变量a

1

1423 AB12

2

241AC 141

3

112AD1241

4

656BC1215

5

123BD234

6

12CD4621

...

...

数据集B:

序号

变量b

1

BC

2

AD

3

AB

4

CD



新生成变量c,如果数据集A中的变量a中,包含数据集B变量b中的任意一个值,那么c=b,否则c为空。
希望得到结果:

序号

变量a

变量c

1


1423 AB12


AB

2


241AC 141



3


112AD1241


AD

4


656BC1215



5


123BD234



6


12CD4621


CD

...

...

...



当然,这只是举个例子,真实数据的变量a,变量b都是由数字和字母构成的。
而且真实数据中,数据A有2000万行,数据B有2万行,如果可以的话,希望还能考虑到效率的问题。
谢谢大家!
二维码

扫码加我 拉你入群

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

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

关键词:观测值 如何用 生成变量 数据集 SAS

沙发
yingzi2003 发表于 2016-4-22 22:22:52
data _null_ ;
  set b end=eof ;
  if _n_ = 1 then call execute("data c ; set a ; length c $30. ; c=' ' ; ") ;
  call execute("if find(a,'"||strip(b)||"') then c='"||strip(b)||"'; ") ;
  if eof then call execute("run;") ;
run;
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 20 + 2 + 3 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 3   查看全部评分

藤椅
liyichen17 在职认证  发表于 2016-4-24 10:03:53
yingzi2003 发表于 2016-4-22 22:22
data _null_ ;
  set b end=eof ;
  if _n_ = 1 then call execute("data c ; set a ; length c $30. ; c ...
谢谢你

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

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