我在表格中有一个“变量”列。该列基本上是用字符串归档的,如下所示。现在我想打破这些字符串并创建一个基于“分隔符”的列,即“空格”。
Rejct 2.00 Accept 4.00
Reject 3.00 Accept 9.00
Reject -4.00 Accept -6.00
现在,如果我想创建Reject和Accept之类的变量,那么该怎么做。
Reject Accept
2.00 4.00
3.00 9.00
-4.00 -6.00
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 魔法会更加灵活。