SAS中文论坛

标题: 求助txt数据导入,谢谢 [打印本页]

作者: shiyiming    时间: 2012-6-18 22:53
标题: 求助txt数据导入,谢谢
数据如下:
600000 浦发银行 日线
      日期            开盘            最高            最低            收盘            成交量            成交额
11/10/1999        29.50        29.80        27.00        27.75        174085000                        4859102208.000
11/11/1999        27.58        28.38        27.53        27.71        29403400                        821582208.000
11/12/1999        27.86        28.30        27.77        28.05        15007900                        421591616.000
11/15/1999        28.20        28.25        27.70        27.75        11921000                        332952800.000
11/16/1999        27.88        27.97        26.48        26.55        23223100                        628908288.000
11/17/1999        26.50        27.18        26.37        27.18        10052500                        268995040.000
11/18/1999        27.20        27.58        26.78        27.02        8446500        229577872.000
11/19/1999        27.50        27.53        26.80        26.88        5374900        145887120.000
11/22/1999        26.88        26.95        26.30        26.45        5535400        147086160.000
11/23/1999        26.45        26.55        26.10        26.45        3843900        101224496.000
11/24/1999        26.44        26.55        26.01        26.43        4098000        107344464.000
11/25/1999        26.30        26.66        26.02        26.40        5725200        150528192.000
11/26/1999        26.43        26.66        26.15        26.45        2282600        60508936.000
11/29/1999        26.45        26.83        26.22        26.33        2681200        71099576.000
11/30/1999        26.30        26.50        26.11        26.40        2371300        62335744.000
12/01/1999        26.31        26.90        26.21        26.60        2865100        76287992.000
12/02/1999        26.52        26.72        26.22        26.26        1938400        51110240.000
12/03/1999        26.25        26.65        26.20        26.36        2552500        67291880.000
12/06/1999        26.30        26.35        25.60        25.66        6983900        180516080.000

我想从第3行开始导入,程序如下:
filename stock 'D:\My Documents\WJ225300 --- 股票数据处理';
data price;
infile stock(333.txt) firstobs=3;
input dat mmddyy10. (x1-x4) (6.) x5 9. x6 14.;
run;

SAS运行日志为:
232  filename stock 'D:\My Documents\WJ225300 --- 股票数据处理';
233  data price;
234   infile stock(333.txt) firstobs=3;
235   input dat mmddyy10. (x1-x4) (6.) x5 9. x6 14.;
236  run;

NOTE: Infile 逻辑库 STOCK 是:
      Directory=D:\My Documents\WJ225300 --- 股票数据处理

NOTE: Infile STOCK(333.txt) 是:
      文件名=D:\My Documents\WJ225300 --- 股票数据处理\333.txt,
      RECFM=V,LRECL=256

NOTE: 对 x6 无效的数据(在行 3 44-57 中)。
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

3   CHAR  11/10/1999.29.50.29.80.27.00.27.75.174085000.4859102208.000 59
    ZONE  33233233330332330332330332330332330333333333033333333332333
    NUMR  11F10F1999929E50929E80927E00927E75917408500094859102208E000
dat=14558 x1=29.5 x2=29.8 x3=27 x4=27.75 x5=17408500 x6=. _ERROR_=1 _N_=1
NOTE: 对 x5 无效的数据(在行 9 35-43 中)。
NOTE: 对 x6 无效的数据(在行 10 1-14 中)。


RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0

10  CHAR  11/19/1999.27.50.27.53.26.80.26.88.5374900.145887120.000 56
    ZONE  33233233330332330332330332330332330333333303333333332333
    NUMR  11F19F1999927E50927E53926E80926E88953749009145887120E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14566 x1=27.2 x2=27.58 x3=26.78 x4=27.02 x5=. x6=. _ERROR_=1 _N_=7
NOTE: 对 x5 无效的数据(在行 11 35-43 中)。
NOTE: 对 x6 无效的数据(在行 12 1-14 中)。

12  CHAR  11/23/1999.26.45.26.55.26.10.26.45.3843900.101224496.000 56
    ZONE  33233233330332330332330332330332330333333303333333332333
    NUMR  11F23F1999926E45926E55926E10926E45938439009101224496E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14570 x1=26.88 x2=26.95 x3=26.3 x4=26.45 x5=. x6=. _ERROR_=1 _N_=8
NOTE: 对 x5 无效的数据(在行 13 35-43 中)。
NOTE: 对 x6 无效的数据(在行 14 1-14 中)。

14  CHAR  11/25/1999.26.30.26.66.26.02.26.40.5725200.150528192.000 56
    ZONE  33233233330332330332330332330332330333333303333333332333
    NUMR  11F25F1999926E30926E66926E02926E40957252009150528192E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14572 x1=26.44 x2=26.55 x3=26.01 x4=26.43 x5=. x6=. _ERROR_=1 _N_=9
NOTE: 对 x5 无效的数据(在行 15 35-43 中)。
NOTE: 对 x6 无效的数据(在行 16 1-14 中)。

16  CHAR  11/29/1999.26.45.26.83.26.22.26.33.2681200.71099576.000 55
    ZONE  3323323333033233033233033233033233033333330333333332333
    NUMR  11F29F1999926E45926E83926E22926E3392681200971099576E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14574 x1=26.43 x2=26.66 x3=26.15 x4=26.45 x5=. x6=. _ERROR_=1 _N_=10
NOTE: 对 x5 无效的数据(在行 17 35-43 中)。
NOTE: 对 x6 无效的数据(在行 18 1-14 中)。

18  CHAR  12/01/1999.26.31.26.90.26.21.26.60.2865100.76287992.000 55
    ZONE  3323323333033233033233033233033233033333330333333332333
    NUMR  12F01F1999926E31926E90926E21926E6092865100976287992E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14578 x1=26.3 x2=26.5 x3=26.11 x4=26.4 x5=. x6=. _ERROR_=1 _N_=11
NOTE: 对 x5 无效的数据(在行 19 35-43 中)。
NOTE: 对 x6 无效的数据(在行 20 1-14 中)。

20  CHAR  12/03/1999.26.25.26.65.26.20.26.36.2552500.67291880.000 55
    ZONE  3323323333033233033233033233033233033333330333333332333
    NUMR  12F03F1999926E25926E65926E20926E3692552500967291880E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14580 x1=26.52 x2=26.72 x3=26.22 x4=26.26 x5=. x6=. _ERROR_=1 _N_=12
NOTE: 对 x5 无效的数据(在行 21 35-43 中)。
NOTE: 对 x6 无效的数据(在行 22 1-14 中)。

22  CHAR  12/07/1999.25.60.25.85.25.50.25.60.3955700.101467904.000 56
    ZONE  33233233330332330332330332330332330333333303333333332333
    NUMR  12F07F1999925E60925E85925E50925E60939557009101467904E000
NOTE: 在列显范围外文件 STOCK(333.txt) 出现了无效的数据错误。
NOTE: 用 INFILE n= 选项增加可用缓冲行。
dat=14584 x1=26.3 x2=26.35 x3=25.6 x4=25.66 x5=. x6=. _ERROR_=1 _N_=13
NOTE: 共有 20 条记录从 Infile 逻辑库 STOCK 中读取。
       最小记录长度是 55。
       最大记录长度是 59。
NOTE: 有 20 条记录从 Infile STOCK(333.txt) 读取。
       最小记录长度是 55。
       最大记录长度是 59。
NOTE: INPUT 语句到达一行的末尾,SAS 已转到新的一行。
NOTE: 数据集 WORK.PRICE 有 13 个观测和 7 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.12 秒
      CPU 时间         0.04 秒

不知道哪位大虾知道是哪里出错了?
作者: shiyiming    时间: 2012-6-19 03:01
标题: Re: 求助txt数据导入,谢谢
在出错的记录行,各数据项之间的分割符不是空格,所以出错。
作者: shiyiming    时间: 2012-6-20 17:51
标题: Re: 求助txt数据导入,谢谢
[quote="sun59338":2tbwy4re]在出错的记录行,各数据项之间的分割符不是空格,所以出错。[/quote:2tbwy4re]
楼上正解,估计你的是TAB,
加这样的option试试:
dlm='09'x
作者: shiyiming    时间: 2012-7-11 09:03
标题: Re: 求助txt数据导入,谢谢
proc import datafile='C:\Users\Administrator\Desktop\新建文本文档.txt'
     out=txt
     dbms=dlm
     replace;
         getnames=no;
     datarow=3;        *从第三行导入;
run;




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2