1

我在表格中有一个“变量”列。该列基本上是用字符串归档的,如下所示。现在我想打破这些字符串并创建一个基于“分隔符”的列,即“空格”。

Rejct  2.00  Accept  4.00

Reject 3.00  Accept  9.00

Reject -4.00 Accept -6.00

现在,如果我想创建RejectAccept之类的变量,那么该怎么做。

Reject  Accept

2.00    4.00

3.00    9.00

-4.00  -6.00
4

1 回答 1

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 魔法会更加灵活。

于 2013-07-15T20:40:41.617 回答