SAS从包含制表符和逗号分隔符的文件中读取数据
所以问题是制表符分隔符被定义为'09'x,逗号-“,”。我知道,如果你有冒号和逗号,可以使用多个分隔符,并将其定义为“:”,但我不知道如何定义制表符和逗号的多个分隔符。我的数据文件如下所示:SAS从包含制表符和逗号分隔符的文件中读取数据,sas,Sas,所以问题是制表符分隔符被定义为'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
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
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;
第一行用逗号分隔,其他行用制表符分隔。。谢谢大家的帮助 我不会使用多个分隔符;我会以制表符分隔的形式阅读整个内容,并分别解析第一行 大概是这样的:
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
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问题