SAS的数据类型
首先,sas的编程大概就两块:Data和PROC,这个倒是蛮清晰的划分。然后目前关注data部分。
SAS的数据类型还真的只有两种:数字和文本。那么看来日期就要存成文本型了。变量名称后面加$代表文本型。
SAS的数据读入
手动输入这种就不考虑了,先是怎么从本地文件读入。比如我们有文本文件如下
然后SAS里面就可以用
这样就建立了一个名为toads的临时数据集,然后读入外部文件ToadJump.dat,然后告诉SAS有四个变量,其中第一个是文本型。这样就OK了。缺失值用一个点.标记。
偶尔数据没那么规范,比如长成:
那么就要有点类似正则表达式的感觉,告诉SAS更多的参数:
这样SAS就可以正确的读数据了—类似于excel的导入文本-固定宽度分隔。
再不规则的话,比如有日期型的:
那么接下来就是:
就是说,name是一个长度为16的字符;age是长度为3、无小数点的数字; 1跳过空列;type是长度为1的文本;date是MMDDYY长度为10的日期;score1-5是长度为4,小数部分为1位的数字。
还有若干更复杂的,可以遇到时侯回来查手册。此外还有@可用来直接指定开始读的列。鉴于我接触的数据一般比较规范,这些就不细看了。
此外SAS可以指定开始读的行数,读取的行数等。
SAS读取CSV数据
以我最关心的CSV文件为例,如下数据:
只需要:
其实,貌似更简单的办法是:
好吧,import果然更直接一点...excel文件也可以如法炮制。
SAS读取excel数据
如果需要SAS永久存着这些数据,则需要先指定libname:
后期就可以直接调用啦:
SAS 读取Teradata数据
最后就是从teradata里面读数据,可以利用teradata fastexport特性:
等价于:
暂时没有fastload的需求,就先这样吧。