antitabu
请教各位一个问题:用SAS从一个文本文档中读入数据,想要控制每次读哪些行,比如第一次读1000000行,第二次从1000001行读到2000000行,在proc import中怎么实现?谢谢
附上已有的代码:
proc import datafile="F:\data.txt"
out=work.data
dbms=tab replace;
getnames=no;
run;
oliyiyi
使用下面的语句:
if _n_ <100000 then output;
.....
fairy
试了一下,似乎import过程导入tab格式的文本文件时不支持一下语句外的语句或数据集选项:
PROC IMPORT OUT=data-set-name
DATAFILE= in-file-name
DBMS=dbms-type replace;
GETNAMES=yes|no;
DATAROW=n;
GUESSINGROWS=m;
RUN;
不过我很奇怪导入文本文件数据为什么用import而不用infile语句?
简单的infile语句你可以规定firstobs= 以及nobs= 选项来控制读入的数据行;
假如复杂的话,可以编写一个宏使用%eval()函数来控制子每个数据集的第一条记录号以及记录数,我已经编了一个这样的宏导入含有200万条记录的文本文件到50个数据集中,完全没有问题的。
hongtianli
data A;
infile " ";
input x1 x2 x3...;
if _n_ <1000001 then output;
run;
data B;
infile " ";
input x1 x2 x3...;
if _n_ >=1000001 and _n_ <=2000000 then output;
run;