1311 9

多个文本类值替换原有文本类值的快捷程序 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

0%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
58 点
帖子
8
精华
0
在线时间
10 小时
注册时间
2015-1-6
最后登录
2015-3-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

eg
1                         2
mng                 stx
zsfd                   jkdfo
sdhf                   jskhd
jksdh                 snad
这类的我只知道可以用if语句,但是数量太多很繁琐,想请教各位有木有简单办法
二维码

扫码加我 拉你入群

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

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

关键词:SDH DFO JKD 有木有 程序

沙发
sushe1527 发表于 2015-1-20 21:48:42 |只看作者 |坛友微信交流群
dada a;
set a;
x1=x2;
run;
?

使用道具

sushe1527 发表于 2015-1-20 21:48
dada a;
set a;
x1=x2;
谢谢您的答复,如果我给出的问题是转化条件,原数据集的观测值是有这些文本组成,但是每个文本值的数量不确定,这时候应该怎么写程序?

使用道具

板凳
sushe1527 发表于 2015-1-20 22:20:26 |只看作者 |坛友微信交流群
你可以举个简单例子,原数据是什么样,想生成什么样

使用道具

sushe1527 发表于 2015-1-20 22:20
你可以举个简单例子,原数据是什么样,想生成什么样
原数据集ae
x1
mng                 
zsfd  
zsfd                  
sdhf
zsfd
mng                  
jksdh
我想到的程序是
data a;
set ae;
if x1=mng then x2=stx;
........
run;
data b;
set a ;
drop x1;
rename x2=x1;
run;
如果x1取值太多,if语句就太繁琐,想问问有没有快捷方法

使用道具

地板
sushe1527 发表于 2015-1-20 22:51:44 |只看作者 |坛友微信交流群
对应关系放在一个表里
  1. data raw;
  2. input x $  y $;
  3. cards;
  4. mng                stx
  5. zsfd                   jkdfo
  6. sdhf                   jskhd
  7. jksdh                 snad
  8. ;run;

  9. data new;
  10. input z$;
  11. cards;
  12. mng                 
  13. zsfd
  14. xxxxxxxx
  15. yyyyyyy
  16. sdhf                  
  17. jksdh
  18. zzz
  19. ;run;

  20. proc sql;select * from new left join  raw on raw.x=new.z;quit;
复制代码

使用道具

我有几个地方不太理解,new里边那些xxxxx、yyyyy、zzz是什么意思?
还有这句select * from new left join  raw on raw.x=new.z;,这句选出的结果不还是new中的观测值吗?

使用道具

8
sushe1527 发表于 2015-1-21 22:40:46 |只看作者 |坛友微信交流群
xxxxx、yyyyy、zzz表是随便添加的,不会被替换的东西
在添一句
  1. data raw;
  2. input x$ y$  ;
  3. cards;
  4. mng                stx
  5. zsfd                   jkdfo
  6. sdhf                   jskhd
  7. jksdh                 snad
  8. ;run;

  9. data new;
  10. input z$;
  11. n=_n_;
  12. cards;
  13. mng                 
  14. zsfd
  15. xxxxxxxx
  16. yyyyyyy
  17. sdhf                  
  18. jksdh
  19. zzz
  20. ;run;

  21. proc sql;create
  22. table final as select * from new left join  raw on raw.x=new.z order by n;quit;
  23. data final(drop=z n x);set final;if y="" then y=z;run;
复制代码


使用道具

9
teqel 发表于 2015-1-22 11:59:17 |只看作者 |坛友微信交流群
sushe1527 发表于 2015-1-21 22:40
xxxxx、yyyyy、zzz表是随便添加的,不会被替换的东西
在添一句
或者data step+merge,和hash

使用道具

sushe1527 发表于 2015-1-21 22:40
xxxxx、yyyyy、zzz表是随便添加的,不会被替换的东西
在添一句
应该可以了,谢谢撒~~~

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-24 12:08