如何在SAS中使用&符号和分隔符

时间:2013-04-06 21:09:10

标签: sas

我想将以下dat文件读入SAS。由于名称和值之间用2个空格分隔,因此我在输入语句中使用了&符号。但似乎infile语句中的DLM='/'与之冲突。有人能告诉我代码中的错误是什么吗?

文件:

1118 ART CONTUCK  57.69/65.20/120.50//152.60
2287 MICHAEL WINSTONE  145.89

代码:

data mylib.D_report;
infile Dinning dlm='/' dsd missover;
input ID 1-4 Name & $17. M1-M6;
run;

2 个答案:

答案 0 :(得分:1)

您正在混合输入样式,虽然您可以理解,但是如果您输入的数据相当混杂,则不允许这样做。

您最好的选择是将M1-6读入一个变量,然后使用SCAN将其拆分。

data work.D_report;
infile datalines missover dlm=' ';
input ID :4.
      Name & $17. 
      Ms :$40.;

array M[6];
do _t = 1 to countc(Ms,'/')+1;
 if _t > dim(M) then leave;
 M[_t]=scan(Ms,_t,'/','m');
end;
datalines;
1118 ART CONTUCK  57.69/65.20/120.50//152.60
2287 MICHAEL WINSTONE  145.89
;;;;
run;

答案 1 :(得分:1)

您只需要更改分隔符。

data D_report;
   dlm = ' ';
   infile cards dlm=dlm missover dsd;
   input ID 1-4 Name & $17. @;
   dlm = '/';
   input M1-M6;
   cards;
1118 ART CONTUCK  57.69/65.20/120.50//152.60
2287 MICHAEL WINSTONE  145.89
run;
proc print;
   run;

enter image description here