楼主: 牵你↗左手
2526 4

[有偿编程] 字符批量替换 [推广有奖]

  • 1关注
  • 3粉丝

已卖:162份资源

硕士生

42%

还不是VIP/贵宾

-

威望
0
论坛币
884 个
通用积分
8.4743
学术水平
17 点
热心指数
12 点
信用等级
9 点
经验
14502 点
帖子
138
精华
0
在线时间
190 小时
注册时间
2013-11-1
最后登录
2015-9-1

楼主
牵你↗左手 发表于 2013-12-31 16:16:31 |AI写论文
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 ...
关键词:Validation Valid ATION label name 字符串

沙发
wwang111 发表于 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;
只有一个罗纳尔多

藤椅
soporaeternus 发表于 2013-12-31 16:45:42
有个类似的
  1. data a;
  2.         input label:$1. start:$1.;
  3.         FMTNAME='$t';
  4.         datalines;
  5. 1 a
  6. 2 b
  7. 3 c
  8.         ;
  9. run;
  10. proc format cntlin=a;run;quit;

  11. data _null_;
  12.         length str1 $100;
  13.         input str:$100.;
  14.         do i=1 to length(str);
  15.                 str1=compress(str1||put(substr(str,i,1),$t.));
  16.         end;
  17.         put str str1;
  18.         datalines;
  19. asvvsb
  20. cdwadsdf
  21. eadfbs
  22. ;
  23. run;
复制代码
Let them be hard, but never unjust

板凳
牵你↗左手 发表于 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;
谢谢,我先试试,不知道数据量大了会不会运行比较慢

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

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