全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4187 2
2016-04-22
现在有两个数据集:
数据集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万行,如果可以的话,希望还能考虑到效率的问题。
谢谢大家!
二维码

扫码加我 拉你入群

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

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

全部回复
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;
二维码

扫码加我 拉你入群

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

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

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 ...
谢谢你
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群