使用语法:
DATA aaa ;
INFILE 'C:\001CA.txt' ;
INPUT ID $ Name $ Year $ cash sales assets debtr bv sc cf ca cd RD CE
Ac divc divs ROA ;
CH1= LOG10(cash/sales) ;
RUN ;
外部资料 一横行 共有20个项目
我INPUT设18个变数
PROC PRINT 出来很正常
设 20个变数 就会如范例显是得那样@ @
以上为新增叙述
SAS在读外部资料时
是不是只能读19个项目呢
稍早的时後
我让SAS读一个有21个项目的外部资料
由於有21个项目,所以变数也设了21个
之後用PROC PRINT检查就发现出了问题
本来预想是这样读
A1 A2 A3 ................. A19 A20 A21
x1 y1 z1 a1 b1 c1
x2 y2 z2 a2 b2 c2
x3 y3 z3 a3 b3 c3
结果SAS 读成
A1 A2 A3 ................. A19 A20 A21
x1 y1 z1 a1 x4 .
x2 y2 z2 a2 x5 .
x3 y3 z3 a3 x6 .
请问大家
是SAS只能读19个项目
还是系统预设的读取上限是19个?
如果是後者,那要如何增加它读取的项目呢
感谢大家的回答
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.23.195.23
1F:推 kingbee:这要看你怎麽读入的 02/11 09:27
2F:推 west1996:应该是你读资料的问题 02/11 11:48
3F:推 kenshin528:语法贴上来才知道 02/11 12:06
4F:推 chien533:我读过九千个变数都没出现过问题,八成是外部资料有问题 02/11 17:23
※ 编辑: chinghsi 来自: 163.23.195.23 (02/11 19:15)
※ 编辑: chinghsi 来自: 163.23.195.23 (02/11 19:15)
5F:推 west1996:乍看之下没大问题 建议贴上一部分的data 才能完全了解 02/11 20:13
6F:→ west1996:资料的结构 02/11 20:13
7F:→ west1996:可以贴input开始出错的前後三笔 如果一开始就出错 贴个 02/11 20:16
8F:→ west1996:头五笔就好 02/11 20:17
9F:→ chinghsi:是贴PROC PRINT的结果 还是LOG的? 02/11 21:06
10F:推 west1996:原始资料 02/11 21:29
11F:推 west1996:如果贴不下要换行记得保持space等相关的位置 02/11 21:31
13F:→ chinghsi:我把资料存成txt档 传到免空上 第一个是原始资料 02/11 21:43
14F:→ chinghsi:第二个是PROC PRINT跑出来的 CH1是计算得来的 可不看 02/11 21:44
15F:推 kenshin528:到底要INPUT几个变数阿...一行才20个资料INPUT21个变数 02/11 21:50
16F:→ kenshin528:当然会有问题 02/11 21:50
CH1 不是透过INPUT来的 是SAS算的
※ 编辑: chinghsi 来自: 163.23.195.25 (02/11 21:55)
17F:推 west1996:看起来raw data没问题 问题应该出在你的coding了 02/11 21:57
18F:→ west1996:把你实际跑的code 贴上来看看 应该是差个符号之类的 02/11 21:58
19F:→ chinghsi:code是指?? 02/11 22:02
20F:推 west1996:从data到run这一段 但是要是你实际跑的 上面贴的只有 02/11 22:05
21F:→ west1996:18个变数 应该不是你实际跑的 02/11 22:06
22F:→ chinghsi:我用贴的好了 02/11 22:08
23F:推 kenshin528:DATA aaa 後面要加分号 02/11 22:10
DATA a01 ;
INFILE 'C:\Documents and Settings\Administrator\桌面\靓曦\SCHOOL\论文\
正式的DAta\001CA.txt' ;
INPUT ID $ Name $ Year $ cash sales assets debtr bv sc cf ca cd RD CE
Ac divc divs ROA RE SG ;
CH1= LOG10(cash/sales) ;
CH2 = LOG(cash/sales);
CH3= cash/sales ;
as = log(assets) ;
LEVERAGE = debtr/100 ;
CFA= cf/assets ;
WCA= (ca-cd)/assets ;
RDS = RD/sales ;
CEA= (-CE/assets) ;
ACS= (-Ac/sales) ;
if ID = '公司' then delete ;
RUN ;
※ 编辑: chinghsi 来自: 163.23.195.25 (02/11 22:11)
25F:→ west1996:把你原始资料前两行的中文删掉重新input一次 02/11 22:19
26F:→ chinghsi:砍掉後的INPUT跟原来的一样 02/11 22:26
27F:→ west1996:log勒? 02/11 22:27
28F:→ west1996:乾脆用聊天室好了 比较快XD 02/11 22:29
30F:→ liton:看不懂了..一下子是01.txt 一下001ca.txt 又看到001caa.txt 02/11 22:40
31F:→ chinghsi:01.txt只有前18笔资料,001ca.txt:有全部的 02/11 23:11
32F:→ chinghsi:001caa.txt=001ca.txt砍掉前两行的中文 02/11 23:12
33F:→ chinghsi:w大帮忙找到原因了 资料太散开 超过256行 02/11 23:12
34F:推 liton:INFILE 'C:\download\001CA.txt' LRECL=32767; 02/11 23:13
35F:→ chinghsi:感谢l大 增加行数的语法 :) 02/11 23:14
36F:→ liton:另我非常不喜欢动原始资料 可加上FIRSTOBS=3 闪过标题 02/11 23:20