我在表格中有一个“变量”列。此列基本上用字符串提交,如下所示。现在我想打破这些字符串,并根据“空格”的“分隔符”创建一个列。
Rejct 2.00 Accept 4.00
Reject 3.00 Accept 9.00
Reject -4.00 Accept -6.00
现在,如果我想创建拒绝和接受等变量,那么该怎么办呢。
Reject Accept
2.00 4.00
3.00 9.00
-4.00 -6.00
答案 0 :(得分:1)
Infile Magic拯救。
data have;
infile datalines truncover;
input @1 string $30.;
datalines;
Reject 2.00 Accept 4.00
Reject 3.00 Accept 9.00
Reject -4.00 Accept -6.00
;;;;
run;
filename a temp;
data _null_;
file a;
put "1";
run;
data want;
set have;
infile a truncover;
input @1 @@;
_infile_=string;
input
@"Reject" reject BEST5.
@"Accept" accept BEST5.
@@
;
datalines;
run;
基本上,你创建一个虚拟文件;然后你使用输入@“string”的力量来搜索你的数据。
您也可以使用SUBSTR和/或SCAN来完成此操作。 IE:
data want;
set have;
reject = input(scan(string,2,' '),best.);
accept = input(scan(String,4,' '),best.);
run;
但是,如果位置不固定,使用@“string”的infile magic会更灵活。