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