| Jiangtang's profile技止于此BlogListsNetwork | Help |
|
1/20/2008 用SAS读入原始数据(1):文本文件文本文件多以.txt、.dat以及.csv为后缀(在Unix/Linux世界,还可能出现.data数据甚至没有后缀的情况)。一般分两种,其一看起来跟下面一样——如果用UltraEdit等编辑器打开,你能看到指示列数的标尺,而且每个字段的列数是固定的,称为字段固定(Fixed Fields)的文本文件:
下面的数据中,每个字段的列数不必相同,但都由同一样个的分隔符(这里是逗号)分开,所以称为分隔符固定(Delimited Data)或者自由格式(Free-format)的文件文件。如果分隔符为逗号(通常以.csv为后缀),干脆就叫做“用逗号分隔的文本文件”:
对以上两种文本格式的数据,SAS提供了以下四种基本的输入模式:
对以上几种输入模式,基本的语句如下,区别就在于input语句的具体设定:
1.列输入模式(Column)--应用于字段固定的文本文件 对字段固定的源文件,input语句的形式是
一个能工作的列输入模式语句看起来就像下面展示的:
优点:
局限:
2.格式化输入模式(Formatted)--应用于字段固定的文本文件 格式化输入模式类似于列模式:
它的input语句的格式为:
注1:指针控制,就是将输入列指针控制在某个位置,作为读入字段的开始列号,它有 @n 或者 +n 的形式:
一个能工作的格式化输入模式语句看起来就像下面展示的:
3.列举输入模式(List)--应用于分隔符固定的文本文件 因为分隔符固定的数据可以用分隔符来确定字段,input语句特别简单:
如果要读入非空格分隔符的数据,就需要在infile语句中指明(默认为空格):
在列举模式下,变量长度的缺省值为8,长度超过8的字符变量在读入时会被截断,这时可以用lenght语句来设定长度:
列举模式也可以设定输入格式,这只需要在输入变量设定时附加上相关修饰:
一个能工作的列举输入模式语句看起来就像下面展示的:
4.命名输入模式(Named) 命名输入模式很少见到,因为很难得见到这种格式的原数据,其中三个变量是ID、Name和Score:
相应的input语句为:
参考资料:
Technorati Tags: SAS Comments (3)
TrackbacksThe trackback URL for this entry is: http://johnthu.spaces.live.com/blog/cns!2053CD511E6D5B1E!376.trak Weblogs that reference this entry
|
|
|