F*******1 发帖数: 75 | 1 请教一个SAS 数据读入的问题. 我有个样本文件. 见附件.
我只需要第6行到第11行的数据. 在data statement 中, 我可以用firstobs=6 来定位
起事行. 那用什么来定位末位行呢? 我试了lastobs=11 不work. 谢谢!
如果我先读入所有数据,再提取需要的数据.我的sas script 如下. 但结果不对, 第7行
到第11行的数据丢了. 是什么原因呢? 谢谢!
data RT1;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile "\\mkscsas01\saswork\20090108_asm_rtmcp_final.csv" delimiter =
',' MISSOVER DSD lrecl=55010 firstobs=6 ;
format Pnode $12. MCPType $12.;
INPUT Pnode $ Zone $ MCPType $ HE1 - HE24;
run; |
F*******1 发帖数: 75 | 2 附件在这里. 谢谢!
=
【在 F*******1 的大作中提到】 : 请教一个SAS 数据读入的问题. 我有个样本文件. 见附件. : 我只需要第6行到第11行的数据. 在data statement 中, 我可以用firstobs=6 来定位 : 起事行. 那用什么来定位末位行呢? 我试了lastobs=11 不work. 谢谢! : 如果我先读入所有数据,再提取需要的数据.我的sas script 如下. 但结果不对, 第7行 : 到第11行的数据丢了. 是什么原因呢? 谢谢! : data RT1; : %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ : infile "\\mkscsas01\saswork\20090108_asm_rtmcp_final.csv" delimiter = : ',' MISSOVER DSD lrecl=55010 firstobs=6 ; : format Pnode $12. MCPType $12.;
|
q**j 发帖数: 10612 | 3 proc import file = "E:\\try.csv" out = SasFile replace;
run;
data SasFile;
set SasFile;
if _N_ ge 6 and _N_ le 10;
run;
i ran your code and i did not lose any data. |
F*******1 发帖数: 75 | 4 Thank you 小车车!
Yes, I just tried and the sample file works fine. But the problem is still
there if I use the real file. The real file is at http://www.midwestmarket.org/home/Market%20Reports/index.php?type=asm_rtmcp&theMonth=200901. Can you help to look at it? Thank you very much for your help! |
q**j 发帖数: 10612 | 5 i ran your code against the actual data, it is still okay. you must messed
up something else. why not try proc import? it would read everything as
characters, so you won't get any error message. you just need to input(put()
) them to turn them into numerical numbers. |
F*******1 发帖数: 75 | 6 我两种方法都试了呀! 问题就是样本小文件时,没问题。但真正的文件就有问题。我
需要前6行,但文件读近来后,就只有第一行(后面5行丢了),后面那些没用的行倒
是都在。 真是奇怪了。我在看看。多谢了! |
o****o 发帖数: 8077 | 7 try the following code. At least on my PC, given the data structure, it
works on the data sets downloaded from the website
the point is to use Text Pointer in Data step;
/* take final.csv as one of the csv file on the website*/
filename final "c:\final.csv";
data test;
infile final delimiter=',' truncover dsd;
input @"MISO Wide,-," type :$10. HE1-HE23;
if ^missing(type) then output;
run;
【在 F*******1 的大作中提到】 : 我两种方法都试了呀! 问题就是样本小文件时,没问题。但真正的文件就有问题。我 : 需要前6行,但文件读近来后,就只有第一行(后面5行丢了),后面那些没用的行倒 : 是都在。 真是奇怪了。我在看看。多谢了!
|
F*******1 发帖数: 75 | 8 谢谢小车车和oloolo! 我把你们的code都记下了.
我后来发现了我的问题,一个奇怪的问题. 我的code 对有些文件work,有些就不对(第7
行到第11行的数据丢了). 然后我把那些不work的文件重新save了一便.然后再run 我的
code,就行了. 真实奇怪. |