0

所以问题是制表符分隔符被定义为 '09'x 和逗号 - “,”。我知道如果您有例如冒号和逗号并将其定义为“:”,则可以使用多个分隔符,但我不知道如何定义制表符和逗号的多个分隔符。我的数据文件如下所示:

AisleLevels: 14, Enroute: 10, OrderAvg: 2, PSnum: 2, PStype: 1, AisleSLots: 150, NOP: 1                 
    Run 1   Run 2   Run 3   Run 4   Run 5
    RN Set 1    RN Set 2    RN Set 3    RN Set 4    RN Set 5
ElevUtil    0.147   0.147   0.149   0.139   0.142
MSutil  0.186   0.186   0.189   0.174   0.182
PickUtil    0.417   0.424   0.417   0.394   0.407
TPut    668 678 666 632 649

第一行用逗号分隔,其他所有内容用制表符分隔。谢谢大家的帮助!

4

1 回答 1

2

我不会使用多个分隔符;我会将整个内容阅读为制表符分隔,并分别解析第一行。

像这样的东西:

data want;
infile datalines dlm='09'x truncover;
if _n_ = 1 then do;
input @1 str $1500.;
*(parse string with SCAN);
 Levels=scan(str,1,',');
 Enroute = scan(Str,2,','); /*etc.*/
end;
else input 
(run1-run5) $
/*....*/
;
run;

通常我只会在非第一行之后输出并保留第一行变量,如果这是你需要的(在所有行上都有这些变量)。我也不完全理解你的格式;您真的想要该数据中的 5 行(除第一行之外)吗?然后是一个稍微不同的DP问题。

于 2013-05-13T18:41:33.527 回答