SAS中文论坛

标题: 关于变量长度的问题 [打印本页]

作者: shiyiming    时间: 2004-2-23 14:32
标题: 关于变量长度的问题
当我从excel中用proc import导入数据时,经常会出现中文变量长度不够的情况,比如在excel中有一个字段
name
这是一个小例子

导入到sas里就变成
name
这是一个小

不知哪位大侠可以赐教
作者: shiyiming    时间: 2004-2-23 16:06
标题: 关于sas字符长度问题
你的问题可以用length定义变量长度

例如:
   data test;
       length name $ 20.;
       inflile '';
       input
    run;

zai
作者: shiyiming    时间: 2004-2-23 16:52
标题: Re: 关于变量长度的问题
[quote="yees":54f6e]当我从excel中用proc import导入数据时,经常会出现中文变量长度不够的情况,比如在excel中有一个字段
name
这是一个小例子

导入到sas里就变成
name
这是一个小

不知哪位大侠可以赐教[/quote:54f6e]
不知道proc import 中是否可以用length语句
或者用楼上的方法,但应该要先把excel存为文本格式吧。
作者: shiyiming    时间: 2004-2-23 18:07
问题就在于proc import 中没有定义变量长度的选项,虽然,用data步来做是可以的,如果能把这个问题解决的话,导数据是很方便的
作者: shiyiming    时间: 2004-2-23 20:10
标题: 老兄,有点不明白
老兄,我试过倒入一个字段长为30的xls文件,没有问题呀!能不能具体点?
不过,还是建议csv来导入,呵呵!
作者: shiyiming    时间: 2004-2-23 21:42
难道这跟机器的配置有关,我在两三台机器上发现过这个问题了,excel里的中文字段导到SAS里就是不全,我想这也有可能跟盗版不彻底有关
作者: shiyiming    时间: 2004-2-24 15:32
标题: hi
如果读excel文件,需要sas的一个产品Access to PC File,请检查一下你的sas这个模块安装是不是有问题!
作者: shiyiming    时间: 2004-3-1 17:57
标题: DDE
filename wer dde 'excel|sheet!r1c1:r100c3' notab;
data sas-data-set;
        length var $25;
        infile wer missover dsd dlm='09'x;
        input var $;
run;

其实,我个人为DDE是从EXCEL导入导出数据最方便的一种方法了,而且只用BASE模块。
作者: shiyiming    时间: 2004-3-5 20:16
SAS 读取Excel的文件确实存在问题,一是长度可能被错误截断,二是字段类型可能被错误识别,三是SAS Access for PC File Formats也是要花钱的,如果只是调用Proc import/export来对付Excel和CSV,text还是比较亏,:(
另外,用proc import读取CSV不加注意也会有问题,可以试一下造一个CSV,包含一个字符字段,前面几行是10个字长,后面有几行是25个字长,proc import仍是会有错误截断现象。

最可靠的方法...只能靠自己的双手啊 :?
作者: shiyiming    时间: 2004-4-1 14:29
用csv比excel格式稍微好一些,为了防止字符被短截的情况,最好将最长的字符放在第一行,这样可能不会出错了。

另外,可以将excel文件格式转化为dbf格式再用 proc import,好像基本上不会出现上面的问题,只是简单试了一下,:)




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