终于找到SAS的“导入excel出现字符串截断”终极解决方案了

199 views
Skip to first unread message

fallwin

unread,
Dec 26, 2008, 2:44:55 AM12/26/08
to 统计软件学习
导入excel数据到sas是做统计分析经常要做的步骤,但是,很多人都遇到过这样的问题:导入到sas中发现,有的字段(主要是文本字
段)会出现截断问题,即,这个字段只导入前面的一部分文字,后面的丢失。从sas 中,我们可以发现这些字段的长度都比较短,一般和该字段第一条记录的
字符串长度一样,推测可能sas在导入过程中,字段以了第一条记录的字符串长度为准。
所以,之前我都是采取在excel第一行增加特殊行,该行的所有列字符串或者数字为该数据最长,比如,如果是字符串,我就键入"我我我我我我我
我我我我我我我我我",数字就输入'999999999.999999999",保证这些字符串的长度最大就行,导入sas后再将该记录删除,这无形中
就增加了不少工作量,也增加了出错的机会。
今天,我终于找到一个方法可以彻底解决这个棘手的问题!就是将SCANTEXT设定为NO,程序如下:

PROC IMPORT OUT= WORK.qk
DATAFILE= "C:\Documents and Settings\Administrator\桌面
\qk.xls"
DBMS=EXCEL REPLACE;
SHEET="qkk$";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=NO;*********一定为NO,这是关键!***********;
USEDATE=YES;
SCANTIME=YES;
RUN;

这是程序法,若是使用sas的导入界面的话,可以在选择导入的excel文件后的options中将"Use the largest text
size in a column as varial"的勾去掉!

不过,以上程序和方法是在SAS 9.1.3中测试通过,SAS 8.2不知道支持不支持。各位可以尝试一下。

Reply all
Reply to author
Forward
0 new messages