全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2446 4
2013-12-31
悬赏 100 个论坛币 已解决
我有两个数据集,一个数据集A有name和label两个变量,另一个数据集B有变量validation,是长字符串;
我想把validation中出现的label值替换成相对应的name值;
如:
A
name label
1 a
2 b
3 c
B

validation
asvvsb
cdwadsdf
eadfbs
把validation中出现的a换成1,把b换成2,把c换成3
求大神帮忙啊,不知道我有没有表达清楚


最佳答案

wwang111 查看完整内容

data a; input name $ label $; cards; 1 a 2 b 3 c ; data b; input validation $10.; cards; asvvsb cdwadsdf eadfbs ; data _null_; set a end=last; length code $1000; retain code code1; code1='data wanted;set b;'; code2=compress('validation=tranwrd(validation,'||quote(label)||','||quote(name)||');'); if _n_=1 then code=code2; else code=trim(code)||code2; if la ...
二维码

扫码加我 拉你入群

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

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

全部回复
2013-12-31 16:16:32
data a;
input name $ label $;
cards;
1 a
2 b
3 c
;

data b;
input validation $10.;
cards;
asvvsb
cdwadsdf
eadfbs
;

data _null_;
set a end=last;
length code $1000;
retain code code1;
code1='data wanted;set b;';
code2=compress('validation=tranwrd(validation,'||quote(label)||','||quote(name)||');');
if _n_=1 then code=code2;
else code=trim(code)||code2;
if last then do;
  code=trim(code1)||trim(code)||'run;';
  call execute(code);
end;
run;
二维码

扫码加我 拉你入群

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

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

2013-12-31 16:45:42
有个类似的
复制代码
二维码

扫码加我 拉你入群

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

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

2014-1-2 08:32:12
soporaeternus 发表于 2013-12-31 16:45
有个类似的
谢谢,我的name和label都不是简单的单个字符,长度不固定,所以你的方法好像不太合适。还是感谢
二维码

扫码加我 拉你入群

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

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

2014-1-2 08:34:41
wwang111 发表于 2013-12-31 16:44
data a;
input name $ label $;
cards;
谢谢,我先试试,不知道数据量大了会不会运行比较慢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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