Professional Documents
Culture Documents
郝彦宾
中国科学院研究生院
§3.4 文件操作语句
1. INFILE 语句
格式: Infile “ 数据文件名”;
该语句可从外部读入 ASCⅡ 码文本文件中的数据。
选项:
LS=n 只读打开文件前 n 列上的数据。
OBS=m 只读打开文件前 m 行上的数据。
MISSOVER 可以识别缺失数据 ( 认定“ .” 为缺失)。
DLM ( Delimiter ) =“ 数据分隔符”
有时所处理的数据处在 CARDS 语句之后,而不是在
外部文件中,可以定义一个专门的逻辑文件名,即
CARDS 。例如:
Data new;
Infile cards missover;
Input x y z; /*missover 不能和 @@ 同用 */
Cards;
123
45
789
Proc print;
Run;
2. PUT 语句(了解)
① 格式: PUT 语句说明;
可以把内容输出到 LOG 窗口或 FILE 语句定义过的输出文件中
。语句说明包括:
变量说明 指出要输出的变量名。
‘ 字符串’ 指明 put 所输出的字符串。
控制指针
Sas4-ex/put.sas
② 格式化输出: PUT variable format.
3. FILE 语句(了解)
格式: FILE 文件名 选择项‘
定义一个外部文件作为当前输出文件,用 put 语句将数
据输出到该文件。
文件名: file 文件逻辑名; file “ 全路径文件名”;
选择项:
LINESIZE= 值;规定输出页每一行的最大列数。
PAGESIZE= 值;规定输出页每页的行数( 20-500 )。
NOTITLES ;规定在输出页上不打印标题行。
4. SET 语句 *
格式: SET 数据集名(数据集选项 ) [SET 语句选项 ] 。
从一个或几个已存在的 SAS 数据集中读取观测值。
数据集选择项
OBS=n 指出 SAS 要处理的最后的观察值个数。
FIRSTOBS=n 指出从第 n 条观察值处理。
DROP= 变量名 在处理中去掉这个变量。
KEEP= 变量名 在处理中保持这个变量。
POINT= 变量名 用于建立一个数值型变量,这个变量在使
用前必须赋值,它的值用来指明输入数据集中所要处理的
观察值号。
END= 变量名 此变量的值用于作为文件结束标志,初始值
为 0 ,读完最后一个观察时,其值为 1.
常见用途
① 数据集的复制。
“DATA new; SET old;” 把数据集 old 复制到
new 中 。
② 生成含部分变量的数据集的子集。
“DATA small; SET big (keep=x y z);”
③ 数据集的合并。
Sas4-ex\set2.sas
数据集 newa
数据集 newb
5. MERGE 语句
格式: MERGE 数据集表;
将两个或多个 SAS 数据集中的观察值合并成新数据集的单个观察
值。
(1)一对一合并 : 把一个数据集中的第一个观测同另外一个数
据集中第一个观测合并,第二个同第二个合并。新生成的数据
集中观测总数为这些数据集中观测个数的最大值。在合并时,
如果一个数据集中已没有数据,则相应的变量值为缺失值。如
果在几个数据集中有共同的变量,则在合并成新生成的数据集
中只有一个变量,其值为列在 Merge 语句中最后一个含有该变
量的数据集的观测值。
(2)匹配合并:将多个含有部分相同变量的数据集的观察值合并
,就要在语句后用 by 语句,且要求所有要合并的数据集中至少
有一个变量是相同的,且每个数据集都要用这个变量排过序。 b
y 用来标识匹配变量。
Sas4-ex\merger.sas
一对一合并
匹配合并
第四节 SAS 数据集的管理
SAS 处理数据时,对已经建立的数据集希望了解它
的逻辑名、存储路径、数据集中有哪些变量、变量
的类型是什么及有多少个观察值,同时对数据中的
变量进行更名、删除或改变变量值的输出格式等。
DATASETS 过程
功能:
更改 SAS 数据集中的变量名、输入输出格式或变量的标
记。
格式:
Sas4-ex\importtab.sas
小 结
文件操作语句: Data, Input, Cards,
Set, Merge, Infile,
运行语句: Delete, Where, Output
控制语句: Do, If, Select
信息语句: Drop, Keep, Format,
Informat
通用语句: Title , /*…*/ , Footnote,
Libname, %Include, Options , Missing
第五节 SAS 过程步语
句
功能
SAS 过程用来调用系统提供的标准过程和统计分析过程,对
指定的 SAS 数据集进行处理,并将结果输出到 OUTPUT 窗
口。一个过程步是一个功能程序模块,调用不同的过程可实
现用不同方法对数据进行分析。
格式:
Weight 变量表; s x
n 1 i 1
( x x ) 2
垂直坐标变量 * 水平坐标变量
垂直坐标变量 * 水平坐标变量 =“ 标记字符”
垂直坐标变量 * 水平坐标变量 = 标记变量名
proc plot 选择项
(1) 输入数据集选项
data= 数据集
( 2 )图形的坐标选项
UNIFORM :当使用 by 语句时,要求对 by 组使用一
致的刻度,以便比较。
NOMISS :把任何变量含有丢失值的哪些观测从散布
图的坐标轴的计算中删除。
( 3 )图形外观的选项
NOLEGEND :不输出每张图顶部列出的作图变量及作
图符号
BY 语句:
可得到以 by 变量定义的几个观测值分别画出的散布
图,注意:输入的数据集必须已按 by 变量进行排序。
Plot request - list</option-list>
1.request - list
①Vertical*horizontal
Proc plot;
Plot y*x;
②Vertical*horizontal=‘character’
Plot y*x=‘+’;
③Vertical*horizontal=‘variable’
2. option-list
( 1 )关于坐标轴刻度标记
vaxis= 值表 垂直轴上的刻度标记。如: plot
y*x/vaxis=o to 50 by 10;
Haxis= 值表 水平轴上的刻度标记。
Vref= 值表 画平行于水平轴的直线。
Href= 值表 画平行于垂直轴的直线。
Vrefchar=“ 标记字符” 指定标记垂直轴线的字符。
Hrefchar=“ 标记字符” 指定标记水平轴线的字符。
Vzero(or Hzero): 要求垂直(水平)坐标轴的刻度
标记从 0 开始。
( 2 )关于重叠作图的选项
OVERLAY :定义 Plot 语句里的几个图打印在一张图上。
( 3 )关于做等值线图
CONTOUR
形式:垂直变量 * 水平变量=变量,且等号(=)后面的变
量是数据集中的数值变量。
Plot a*b=z/countour=10 < 后面可用 slist
=‘ character-lsit‘>
5. Chart 过程 ( 自学)
一、方法
( 1 )图形的表示方法
垂直条形图或垂直直方图( VBAR 语句)