第三章 AS数据管理.ppt
文本预览下载声明
Chapter3 SAS数据管理 Chapter3 SAS数据管理 一、SAS数据集的建立 二、SAS数据集的浏览与修改 三、SAS数据集的高级管理 一、SAS数据集的建立 (一)使用INPUT语句输入数据 (二)利用 VIEWTABLE 新建数据集 (三)将其他格式的数据文件导入数据集 (一)使用INPUT语句输入数据 ⒈程序中直接输入 CARDS; 数据行 ; ⒉infile语句读入数据 ⒈程序中直接输入 ⑴自由格式 ⑵列方式 ⑶格式输入 ⑴自由格式 按顺序列出每个观测的各个变量名,中间用空格分开。变量如果是字符型的需要在变量名后面加一个$符号,$符与变量名可以直接相连也可以隔一个空格。例如:使用自由格式的优点是:使用简单;输入数据时不必上下对齐;不需要知道每个变量的具体列数而只需知道它的次序。 data sasuser.score1; input name $ sex $ math chinese; cards; 李明 男 92 98 张红艺 女 89 106 王思明 男 86 90 张聪 男 98 109 刘颍 女 80 110 ; run; 使用这种格式需要注意以下几点: ⒈数据排列格式必须统一, 每行数据代表一个观测, 各数据值之间必须用空格或制表符分隔开; ⒉缺失的数据用点号表示; ⒊字符型数据的长度不能超过 8 个字符; ⒋变量名与数据值要对应。 使用这种办法需要在编辑窗口中输入全部数据内容,如果数据量不大的话还可以忍受,但是如果是海量数据,那么使用这种办法几乎是不可能了,这时就需要从其他文件来将数据导入数据集。 ⑵列方式 此时需要在每个变量名(及$符)后面列出该变量在数据行中所占据的列起始位置与结束位置,比如上面的例子可以改写成。列方式有如下特点: ①要求数据行各项上下对齐 ②各项之间可以没有任何分隔,连续写在一起 ③字符型数据长度可以超过8个字符,中间可以有空格,头尾的空格仍将被忽略。 ④不论字符型变量还是数值型变量如果指定列位置都是空白则输入值为缺失值。小数点仍表示数值型和字符型变量的缺失值。 ⑤可以只输入数据行中的某些项而忽略其它项。 由于列方式不要求数据项之间分开,所以经常用来输入紧缩格式的数据。比如,我们要输入一批身份证号码,但只输入其中的出生年、月、日信息,就可以用如下程序: data pids; input year 7-8 mon 9-10 day 11-12; cards; 110103751209223 110101690215005 ; run; data sasuser.score3; input name $ 1-10 sex $ 11-13 math 14-16 chinese 18-20; cards; 李明 男 92 98 张红艺 女 89 106 王思明 男 86 90 张聪 男 98 109 刘颍 女 80 110 ; run; ⑶格式输入 有格式输入就是在变量名后加格式名。其中最常见的是用来输入日期。数据中的日期写法经常是多种多样的,比如1998年10月9日可以写成“1998-10-9 ”,,“9/10/98”等等,为读入这样的日期数据就需要为它指定特殊的日期输入格式。另外,日期数据在SAS中是按数值存储的,所以如果要显示日期值,也需要为它指定特殊的日期输出格式。例如: data a; input date yymmdd8. sales; format date yymmdd10.; cards; 56-6-13 1100 67.12.15 1200 78 10 2 1300 891001 1400 1500 1600 ; run; proc print;run; yymmdd8. 指明日期数据占据8列位置。因此在cards中,如果日期数据不满8列要用空格补充,不能让后面的数据进入这8列。这样可以输入没有世纪数,年、月、日之间用减号或小数点或空格分隔的日期,输入YYMMDD 格式的六位数的日期(一位数的月、日前面补0),输入带世纪数的YYYYMMDD格式的日期(一位数的月、日前面补0)。 YYMMDD10. 输入格式可以输入带世纪数的中间有分隔符或无分隔的日期,如: data b; input date yymmdd10. sales; format date yymmdd10.; cards; 56-6-13 1100 67.12.15
显示全部