SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 3208|回复: 1
打印 上一主题 下一主题

一道难题,请高手帮忙

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2013-11-21 11:37:02 | 只看该作者

一道难题,请高手帮忙

%let tt=%str(A B C);
data a;
input unid $ X $;
cards;
001 A
001 B
001 C
002 B
003 A
003 B
;
run;

现有data a和一个字符串tt如上所示。
要求建一个新变量y,使每个unid中x中缺少的值(相比较tt)赋值给y。
比如001的y就为空,002的y就是A B,003的y就是C,如下表所示:
unid x y
001 A .
001 B .
001 C .
002 C A B
003 A C
003 B C

先谢谢了!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2013-11-26 10:03:59 | 只看该作者

Re: 一道难题,请高手帮忙

[code:2e1ttiwc]
data result;
        if 0 then set a;
        Y="&tt";
        do until(last.unid);
                set a;
                by unid;
                Y=strip(compbl(tranwrd(Y,strip(X),'')));
        end;
        if Y='' then Y='.';
        do until(last.unid);
                set a;
                by unid;
                output;
        end;
run;[/code:2e1ttiwc]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-11-22 12:10 , Processed in 0.100747 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表