建立SAS数据集
SAS系统和数据分析建立SAS系统的数据集
第十课建立SAS系统的数据集(FILE/IMPORT或EXPORT)用SAS/ACCESS访问外部数据库,只是建立了SAS系统访问外部数据库的访问通道,外部数据库并没有真正转换成SAS数据集,也没有新增一个外部数据库文件大小的存储空间,仅仅是创建了.ACCESS和.VIEW文件,且占用了很少的存储空间,例如我们将外部数据库文件移去,SAS系统中对应的那个*.VIEW就不能显示了。
而我们使用FILE/IMPORT或EXPORT 方法是真正地输入或输出了一个数据库文件,要新增一个与原外部文件大小相当的SAS数据集,且这个数据库文件格式也转换成SAS数据库文件格式。
我们这里主要介绍Excel的*.XLS数据库文件与SAS数据集的转换。
一、Excel的XLS文件输入变成SAS的DATA文件Mircrosoft Office套装软件中一员Excel,是一个功能强大的管理和决策工具软件,被大多数用户熟悉和常用。
虽然Excel中也为用户提供了大量的统计函数和可调入的统计宏模块程序,但遇到需要大数据量的、多种类型的、复杂的大型统计分析,Excel就会显得力不从心。
常常采用将Excel中原始分析数据转入到SAS系统,借助SAS系统的强大的专业的统计分析能力进行分析处理,能使用Excel所不具备的统计模块,能生成独有的专业统计报表和图形。
例如我们有一个上证综合指数的Excel文件,文件名为1a0001w.xls,存放的目录为d:\sasdata\mydir,存放内容是从1990年12月21日开市到2000年1月07日的周K线指数数据,如图10.1所示。
图10.1 上证周K线数据的XLS文件将上述的1a0001w.xls文件输入到SAS系统,创建一个名为XLSSAS.DATA的SAS数据集,操作步骤如下:1.选择File/Import命令,进入选择输入文件类型窗口,在下拉菜单中选择Excel如图10.2所示。
鼠标单击输入框右边的向下箭头,弹出下拉菜单,选择Excel 5 or 7 Spreadsheet (*.xls)选项,然后单击Next按钮,进入下一个菜单窗口。
SAS系统和数据分析建立SAS系统的数据集
第十课建立SAS系统的数据集(FILE/IMPORT或EXPORT)用SAS/ACCESS访问外部数据库,只是建立了SAS系统访问外部数据库的访问通道,外部数据库并没有真正转换成SAS数据集,也没有新增一个外部数据库文件大小的存储空间,仅仅是创建了.ACCESS和.VIEW文件,且占用了很少的存储空间,例如我们将外部数据库文件移去,SAS系统中对应的那个*.VIEW就不能显示了。
而我们使用FILE/IMPORT或EXPORT 方法是真正地输入或输出了一个数据库文件,要新增一个与原外部文件大小相当的SAS数据集,且这个数据库文件格式也转换成SAS数据库文件格式。
我们这里主要介绍Excel的*.XLS数据库文件与SAS数据集的转换。
一、Excel的XLS文件输入变成SAS的DATA文件Mircrosoft Office套装软件中一员Excel,是一个功能强大的管理和决策工具软件,被大多数用户熟悉和常用。
虽然Excel中也为用户提供了大量的统计函数和可调入的统计宏模块程序,但遇到需要大数据量的、多种类型的、复杂的大型统计分析,Excel就会显得力不从心。
常常采用将Excel中原始分析数据转入到SAS系统,借助SAS系统的强大的专业的统计分析能力进行分析处理,能使用Excel所不具备的统计模块,能生成独有的专业统计报表和图形。
例如我们有一个上证综合指数的Excel文件,文件名为1a0001w.xls,存放的目录为d:\sasdata\mydir,存放内容是从1990年12月21日开市到2000年1月07日的周K线指数数据,如图10.1所示。
图10.1 上证周K线数据的XLS文件将上述的1a0001w.xls文件输入到SAS系统,创建一个名为XLSSAS.DATA的SAS数据集,操作步骤如下:1.选择File/Import命令,进入选择输入文件类型窗口,在下拉菜单中选择Excel如图10.2所示。
鼠标单击输入框右边的向下箭头,弹出下拉菜单,选择Excel 5 or 7 Spreadsheet (*.xls)选项,然后单击Next按钮,进入下一个菜单窗口。
SAS软件建立与管理SAS数据集
建立与管理SAS数据集●用窗口建立SAS数据集(VT 、INSIGHT)●从SAS系统的文件菜单里使用IMPORT与EXPORT进行SAS数据集与流行的数据库进行转换●用DATA步语句建立SAS数据集1.DATA语句及其选项的使用(知识点)1.1字符变量的录入与数值型变量在录入时的区别;1.2日期型变量录入的规则;1.3类似会计里的习惯表达方式的了解与掌握;1.4掌握INFORMAT与FORMAT语句的使用;1.5掌握LABEL语句的使用;1.6掌握TITLE与FOOTNOTE语句的使用;1.7如何除去观测号;1.8如何定义列格式录入;1.9缺失值的处理;2.INPUT语句及其选项的使用(知识点)2.1列格式的读取(数据中有空格);2.2从其他文本文件中读取数据(INFILE语句的使用);如:INFILE ‘E:\DATA-HW\DCW.TXT’;✧如何选择读入的数据(FIRSTOBS与OBS)✧INFILE 语句要位于INPUT语句前2.3自由录入格式;2.4 LENGTH语句的使用。
如LENGTH NAME $12; 如果变量值太长时使用。
2.5如何产生一个新的变量;并且给新变量赋值。
3.PRINT语句的使用PROC PRINT DATA=SAS-data-set <NOOBS><LABEL><SPLIT>;ID variable;VAR variables;WHERE where-expression; 选择表达式SUM variables; 求和BY by-variables; 分组打印PAGEBY by- variables; 分页打印RUN;4.根据以前的SAS数据集建立新的SAS数据集DATA DCW02;SET DCW01;RUN;5.选择变量或数据集5.1在DATA步中使用(KEEP=variables/DORP= variables)KEEP只保留变量;DOR只除去变量.5.2在SET语句中使用KEEP与DORP如:DATA dcwnew;SET bclass(KEEP=name sex age)RUN;5.3选择观测如果在DATA步中使用IF语句。
SAS 编程及应用------SAS数据集的建立
SAS 编程及应用------SAS数据集的建立SAS数据格式v 观测(Observation)1.描述被观测对象的单一整体(如个别人、一个实验动物等)某些特性的一系列数据值称为一个观测,又称为观察。
在SAS数据集中每一行数据是一个观测。
v 等同于数据库中的一条记录v 变量(Variable)1.变量指定了数据的某一特性。
在SAS数据集中,每一个观测是由各个变量的数据值组成。
在数据集中每一列数据是一个变量。
v 变量的命名1.最多32个字符长,第一个字符必须是字母或者下划线,不能有空格。
特殊字符(如$,@,#)也不允许在SAS名中使用。
合法变量名如:A A1 abc name age total …;2.SAS系统保留的特殊变量名,以下划线开始和结尾。
如:_N_和_ERROR_等。
v 变量的特性1.名称、类型、长度、输入格式、输出格式和变量描述;2.两种类型:数值型和字符型;3.长度特性:是指存贮的字节数。
缺省长度是8(为了存贮长度与缺省值不同的变量,需使用LENGTH语句)。
v 缺失值1.当一个变量由于某种原因没有得到(可能没有观测到,或由于数据错误,或由于计算错误),称该值为缺失值;2.在SAS中数值类型的缺失值用“.”表示;3.字符类型的缺失值为“”(空格)表示。
v 常量1.SAS常量为值固定不变的量;2.常量分为以下三类;•数值常量:1.5 -2.79 1.75E-5;•字符常量:“Hello”‘ABC’“Zhangli”;•日期、时间、日期时间常量:后接D,T,DT。
‘1JAN2000’D‘9:25:19’T‘1JAN2000:10:30:05’DTv SAS数据集1.SAS数据集是SAS过程的数据基础。
可以从外部数据读进来,转变成SAS数据,也可以自己输入产生;2.可以是临时的,或永久的;3.数据集含两部分内容:• 描述部分:数据名称、类型、长度、格式等• 数据部分:包含实际数据值4.SAS数据值被安排在一个矩阵式的表状结构中。
03数据步创建SAS数据集
SAS名与关键词
关键词 SAS语句一般以关键词开始。 赋值语句、累加语句和注释和空语句没有关键词。
SAS名的类型
逻辑库名; 数据集名; 变量名; 格式名; 过程名; 数组名; 语句标号名; 特殊文件名; 其它名
有关SAS名的规定
第一个字符必须是字母或下划线_; 逻辑库名的最大长度是8个字符,其它的
SAS常数值可以是: 数字; 引号引起来的字符串; 其它特殊记号。 SAS常数的五种类型: 数值常数; 字符常数; 日期时间数值常数; 十六进制数值常数; 十六进制字符常数。
数值常数
一个数值常数就是出现在SAS语句里的数字。
1, –5, 1.23, 1.2E23, 0.5E-10 , 2E4 , 2×104 , 20000
书写规则
SAS语句的书写规则灵活自由: 语句可在行的任一列开始; 一个语句可以分写为多行; 多个语句可以写在同一行; 语句中各项之间至少用一个空格或特殊字符隔开; 应遵守的书写规则: 不同程序步间留空行; 每条语句都要另起行。 注释语句的两种格式: /* 注释内容 */ * 注释内容;
SAS表达式
表达式由一系列 操作符 和 操作对象 构成,产生一个目 标值。
操作对象有:
变量; 常数。
操作符包括:
算术算符; 比较算符; 逻辑算符; SAS函数; 括号。
例3.10 表达式里允许有空格。
Y=X+10; Y= X + 10;
SAS常数
SAS常数是SAS系统可以识别的一些固定值。
SAS数据集
一个SAS数据集是一批数据值,如表3.1所显示一批观测值。
Date 2001-1-10 2001-1-11 2001-1-15 2001-1-16 2001-1-17 2001-1-18 Oppr 8.68 8.52 8.47 8.08 8.39 8.32 Hipr 8.7 8.6 8.47 8.4 8.5 8.4 lopr 8.45 8.4 8.08 8.05 8.28 8.21 clpr 8.49 8.47 8.12 8.35 8.29 8.26 Vol 98169 75748 38402 45571 26345 17854 sums 83862277 63988645 31636545 37683964 22076348 14844434 ¹ ª ª ¹ ª ¹ ª ¹ ª ¹ ª ¹ name ¦· µ ÖÌ ú ¦· µ ÖÌ ú ¦· µ ÖÌ ú ¦· µ ÖÌ ú ¦· µ ÖÌ ú ¦· µ ÖÌ ú hstoce 600001 600001 600001 600001 600001 600001
SAS学习系列05. 数据步创建数据集的过程
05. 数据步创建数据集的过程数据步创建数据集的过程分为两个阶段:1. 编译阶段:扫描语法错误,生成数据集的“描述信息”;2. 执行阶段:逐条记录地读入并处理输入数据(循环执行若干次数据步)。
(一)编译阶段将数据从外部文件读入“程序数据向量”(Program Data Vector)。
一、在输入缓冲区(内存)创建“程序数据向量”注意:是读入外部数据时创建,而不是读入SAS数据集时创建。
例1下面的数据步代码:infile'D:\我的文档\My SAS Files\9.3\invent.dat';input Item $ 1-13 IDnum $ 15-19 InStock 21-22 BackOrd 24-25;Total=instock+backord;run;将创建如下的“程序数据向量”:包括_N_:记录数据步执行的次数,读入一条记录则+1;_ERROR_:用来指示错误,默认是0,遇到错误则变为1;注意:_N_和_ERROR_是该处理过程自动生成的,将来也不会出现在数据集的观测值中。
Item、IDnum、InStock、BackOrd:数据集自身的变量,其变量属性(长度、类型等)在第一次读到数据时确定;Total:数据步中赋值语句生成的变量。
二、检查语法错误(1)关键词缺少或拼写错误;(2)无效的变量名;(3)标点符号缺失或拼写错误;(4)无效的可选参数。
三、生成数据集的“描述信息”遇到数据步的run;语句时生成,包括:(1)数据集的名称;(2)数据集包含变量的个数;(3)数据集各变量的变量名和属性。
注意:此时,“程序数据向量”中还没有内容,数据集中也还没有观测值,观测值将在执行阶段从“程序数据向量”中逐条读取。
(二)执行阶段逐条记录地从“程序数据向量”读入并处理输入数据(循环执行若干次数据步)。
例如,例1中的invent.dat文件共有9条记录:数据步读入它将循环执行9次。
执行阶段具体步骤:第1次循环:一、初始化“程序数据向量”_N_ = 1_ERROR_ = 0其它变量 = 缺省值(数值型是 . 字符型是空格)二、执行input语句前例中,代码依次将外部数据文件的第一行的1-13列读入数据存入Item变量,……,赋值语句将instock和backord值相加赋给Total.三、数据步收尾工作1. 将当前“程序数据向量”中的条目,作为第1条观测值写入输出数据集。
第三章建立数据集
第三章 建立数据集
注意: ●格式化读入时,读数据指针按给出的格式长度移动。
MMDDYY8. 格式读入日期值时,日期值最长占8列。如格式给 出 的 长 度 不 足 , 则 会 出 现 数 据 截 尾 。 DATE10. 格 式 是 按 ddmmmyy的格式读入数据的,最长可读入10列。
●日期在SAS系统中的表示是用1960年1月1日至读入那一天 之间的天数表示的。 如读入的日期在1960年以前, 则用负数表 示。这种表示便于进行计算。
DATA D1; INFILE ‘C:FIT.TXT' INPUT NUM $ 1-4 SEX $ 5 H 69 W 10-11; RUN;
15
第三章 建立数据集
当数据文件中某一记录的数据数少于需要读 的记录数,或最后一列无数据时,SAS 则到下一 行开头去读入数据,这样就会出现输入错误,发 生数据混乱。 LOG窗口会显示一段信息:
14
第三章 建立数据集
3. INFILE 语句 指定从外部的纯文本文件中读入数据。
如: INFILE ‘C:FIT.TXT’; 用法:不使用CARDS语句,数据单独存放。
DATA D1; INPUT NUM $ 1-4 SEX $ 5 H 69 W 10-11; CARDS; 1001F1.6748 1002M1.7360 RUN;
7
第三章 建立数据集
(2)列输入 在Input 语句中,变量名后指出变量值所处的列号。 在数据中,同一变量的数据应位于相同的列上。 例:
Input name $ 1-8 count 10-12; cards; zhangsan 101 Lisi 102
优点: 1)输入值可以以任何顺序读入:INPUT FIR 73-80 SEC 10-12; 2)字符型数据中可包含空格 3)字符型数据可以最多到200个字符长 4)可读取全部或部分数值 :INPUT ID 10-15 GROUP 13; 缺点:数据必须严格按照列位置输入。 注意:所读取列中只有空格或“.”时,被作为缺项值。
SAS课件——第03讲 建立SAS数据集
建立SAS数据集 数据集 建立
使用Import菜单读入 菜单读入 使用
为了实现其它文件格式与SAS数据集间的转换, 数据集间的转换, 为了实现其它文件格式与 数据集间的转换 需提供: 需提供: 存放SAS数据集的库和名称 数据集的库和名称 存放
18
建立SAS数据集 数据集 建立
将文本文件转换为SAS数据集 数据集 将文本文件转换为
10
建立SAS数据集 数据集 建立
用Viewtable窗口直接输入 窗口直接输入
在设定变量属性后( SAS数 在设定变量属性后(此时系统已存贮了 SAS数 据集的描述部分) 据集的描述部分) 再 点击单元格即可在单元格输入内容. 点击单元格即可在单元格输入内容. 在输入完毕后可选: 在输入完毕后可选: 文件(File) 另存为(Save 文件(File) ⇒ 另存为(Save as) 或 文件( 文件( File) ⇒ 保存 (Save) 将表存为SAS数据集. 将表存为SAS数据集. SAS数据集
13
建立SAS数据集 数据集 建立
由文本数据文件建立SAS数据集 由文本数据文件建立 数据集 在DATA步由文本数据文件 步由文本数据文件 在DATA步由文本数据文件生 步由文本数据文件生 建立SAS数据集的一般格式: 成SAS数据集的例子: 建立 数据集的一般格式 数据集的例子 data da2; DATA SAS-data-set ; infile ‘c:\f1.txt’; 变量属性设定语句; 变量属性设定语句; input x y z; mean=(x+y+z)/3; INFILE filename run; <FIRSTOBS=n1 文本数据文件f1.txt的内容 的内容: 文本数据文件 的内容 1 3.1 5 OBS=n2>; 3 2.3 7 INPUT 语句; 语句; ……. 其它语句; 其它语句; RUN; 语句可规定不同的分隔符, (在infile语句可规定不同的分隔符,
SAS建立数据集
SAS数据集的名字
例 PRINT过程用相同方法处理数据集aaa.abc, 而忽略它的形式: PROC PRINT DATA=aaa.abc 例中aaa.abc这个SAS数据集名字,aaa是库标记, abc是数据集名字,成员类型没有写出,应该是 DATA或VIEW中一个。
打开KEYS 窗口后在F12的右边的空白区键入 OPTIONS,完毕之后退出KEYS窗口
二 显示管理系统命令
1显示管理系统命令的发布 有四种命令的发布方式都可达到相同结果。
① 在命令框中直接键入命令
② 按功能键
③ 使用下拉式菜单
④ 使用工具栏
例:打开OUTPUT窗口,相应地四种操作:
2 显示管理系统的常用窗口
KEYS
LIBNAME
查看及改变功能键的设置
查看已经存在的SAS数据库
DIR
查看某个SAS数据库的内容
如 dir sasuser
VAR
OPTIONS
查看SAS数据集的有关信息
查看及改变SAS的系统设置
例:自定义F12功能键为OPTIONS命令
quantilex知识点回顾描述性统计57?众数频数tabley?多组数据的概括?summary计算均值和五数?aggregate分组描述函数?aggregate数据框指定分组变量计算函数?aggregatestatex77listregionstateregionmean知识点回顾描述性统计58?按列联表中某个属性求和即边际列表?margintable?margintableeyehair1按行相加?margintableeyehair2按列相加?proptable产生相对频数列联表频数边际?optionsdigits1保留一位有效数字?proptableeyehair1知识点回顾描述性统计知识点回顾?sas名字的命名规则
第二章 SAS数据集的建立
The SAS System
23:20 Tuesday, August 28, 2001 1 height weight bust
Obs n 3 4
男 男 女
0.94 0.91 1.39
13.59 14.20 16.15
50.4 50.0 51.6
数据步读入数据的一些补充
Infile 的一些选项dsd 使用dsd后,缺省的分隔符为逗号; 不使用dsd时,多个相连的分隔符作为一个分 隔符处理。使用dsd后,每个分隔符都作为一 个字段的分隔符。两个相邻的分隔符就意味着 前一个分隔符后的字段为缺失值。 在读入时,将同一数据行中最外层的引号(单 引号或者双引号)中间的内容作为字符串读入, 并将最外层的引号对除去。
SAS 数据集看数据集
proc print data=数据集名; run; 用工具栏中的图标进入库管理对话窗 选中数据集 在弹出菜单选 Open table view
永久数据集的建立 程序基本结构 Libname 库逻辑名 ”路径”; Data 语句; Input 语句; 用于数据步的其它语句; Cards; 若干数据行 …… Run; Libname 语句 格式:Libname 库逻辑名 “路径”; 功能:以库逻辑名代替其后所指的路径.
Data indt05; Infile 'd:\lecsas\basev8\dst\imptdt06.txt' dlm=','; Input gender $ age bankcard freqbank deptcard freqdept; Run; Proc print; Run;
@
4.用窗口建立数据集
第二章 SAS数据集的建立
实验一SAS系统及数据集创建
实验一 SAS 系统及数据集创建一、实验目的:了解 SAS 逻辑库组成,创建。
学习 SAS 数据集(数据文件,数据视窗的命名,创建。
学习数据集导入导出,变量定义,变量选择,观测选择等操作,缺失值插值。
二、实验内容(1用户用 SAS 数据步(DA TA STEP创建一个数据集的方法, DA TA 程序步的主要步骤 : Data 所要创建的数据集名 ;Infile ‘ 读取的外部文件名’ < FIRSTOBS=开始读入的行 >< OBS=结束行 > ;Input 变量 1 读入模式变量 2 读入模式……;Run ;(2 确定变量的读入模式共有四种:column 模式Input 变量 1 < $> 开始列 <-结束列 ><.小数位 > 变量2 …… ;例 1:data testd1;infile 'e:dmydir\testdata.dat' firstobs=2 obs=4;input code $1-8 sex $9 bdata $10-16 income 17-23 .2;run;上面的程序的数据步在临时库 WORK 中创建了 SAS 数据集 work.testd1, 而过程步 PRINT 则显示该数据集。
formatted 模式格式一:Input <指针控制 > 变量 1 输入格式<@|@@>… ;格式二:Input <指针控制 > (变量表 (输入格式表 <@|@@> ;例 2:Data testd2 ;Infile ‘ e:\dmydir\testdata.dat’ ;Input code $ 1-8 sex $ 9 @ ;Input bdate $ 10-16 income $17-23 .2 ;Proc printdata=testd2 ;Run;list 模式格式一:Input <指针控制 > 变量1 <$><&> <@|@@>…… ;格式二:Input <指针控制 > 变量 1 <:|&|~> <输入格式> <@|@@>… ;例 3:Data testd5 ;Infile ‘ e:\dmydir\testdata2.txt’ dsd;Input name & $15. age address ~ $40. pc ;Proc print data=testd5 ;Run ;例 4:data A600001(label="邯郸钢铁 ";input date yymmdd10. oppr hipr lopr clpr vol sums name $ hstocd $; format date yymmdd10. ; /*设定变量的输出格式 */label Date="日期 |Date"; /*给变量加标签 */label Oppr="开盘价 |Open Price";cards; /*以下是数据表 */2001-1-16 8.08 8.4 8.05 8.35 45571 37683964 邯郸钢铁 6000012001-1-17 8.39 8.5 8.28 8.29 26345 22076348 邯郸钢铁 6000012001-1-18 8.32 8.4 8.21 8.26 17854 14844434 邯郸钢铁 6000014、增加变量、选择变量和观测创建新数据集例 5:Data class2 ;Input id test1-test5 ;average=mean(test1,test2,test3,test4,test5;test4=test1+test2+test3+test4+test5;Cards ;980801 100 100 100 100 100980802 90 100 90 100 90980803 81 82 83 84 85Proc print data=class2 ;Run ;Input id test1-test5 ; 输入数据average=mean(test1,test2,test3,test4,test5; 求 test1到 test5的平均值test4=test1+test2+test3+test4+test5;例 6:Data class3 (drop=test1 test2 test3 test4 test5 ;Set class2 ;Proc print data=class3 ;Run;创建 class3 数据集,数据来源是 class2 中剔除 test1 test2 test3 test4 test5例 7:Data class4 ;Set class2 ;if average>=80 and (100=test1 or 100=test2 or 100=test3 or 100=test4 or 100=test5 ;Proc printdata=class4 ;Run ;创建数据集 class3, 数据来源是 class2中均值 >=80, 且 test 1~test 5中有一值为100.三、习题1、下列为 1975-1980年夏威夷岛莫纳罗亚火山每月释放 CO2的数据,请将它生成数据集 H1,并剔除释放量小于 330的观测,生成新的数据集 H2。
SAS讲义 第六课建立SAS系统的数据集(ASSIST)
第六课建立SAS系统的数据集(ASSIST)得到SAS数据集的五种途径●用SAS/ASSIST 通用菜单系统创建数据集;●用SAS/FSP系统的FSEDIT过程创建数据集;●用SAS数据步(DATA STEP)将外部文件转换为数据集;●用SAS/ACCESS系统访问其它的数据库;●用FILE/IMPORT或EXPORT输入输出数据库。
其中如何使用SAS数据步读入外部原始数据文件,并将它们转换为SAS数据集是我们要重点掌握的。
一.用ASSIST 通用菜单援助系统创建数据集下面我们通过创建一个SURVEY数据集,并用报表形式显示的例子,来说明SAS/ASSIST 软件的具体的操作步骤:1启动SAS/ASSIST软件最简单的方法是单击工具拦上的SAS/ASSIST按钮,或选择菜单命令:●Globals/SAS/ASSIST或在左上角的命令框直接键入Assist并按Enter键,都可启动SAS/ASSIST软件,主菜单见图6-1所示。
共有11个子系统:TUTORIALDA TA MGMT (DA TA Management)图6-1 SAS/ASSIST软件的主菜单REPORT WRITINGGRAPHICSDA TA ANAL YSISPLANNING TOOLSEISREMOTE CONNECTRESULTSSETUPINDEX2选择主菜单中的DATA MGMT(数据管理)项选择主菜单上的DATA MGMT(数据管理)子菜单,见图6-2所示:图6-2 数据管理的主菜单3选择CREATE/IMPORT(创建数据集或输入数据)的方法选择CREATE/IMPORT菜单后,提供几种创建数据集的方法供用户选择,见图6-3所示。
假设我们:(1).选择用交互式方法录入数据:Enter data interactively….图6-3 创建和输入菜单(2).选择第二种以表格的形式输入记录的方式见图6-4所示。
又提供了二种输入观测的方法供用户选择:Enter data one record at a time…(一次输入一条记录的方式)和Enter data in tabular form…(以表格的形式输入)。
sas课件第2讲 数据集建立
或较深入的分析功能必须用编程实现.编程是
功能最强的使用SAS系统进行统计分析的方法.
2
SAS语言
SAS语言也是一种计算机语言,常称为 非过程语言或第四代语言. 过程语言一般是指 : BASIC语言, C语 言,Fortran 语言 等需要给出计算过程的 语言. 第一代至第四代语言是指:机器语言,汇 编语言,高级语言(如Fortran 语言等),非过 程语言.
SAS程序的输出 若干数据步和几个过程步构成一个SAS程 序.SAS程序一般在PGM窗口采用全屏幕编辑方 式输入.当程序输入完毕,检查修改后就可以 提交给SAS系统执行. 在程序执行的过程中,日志(LOG)窗口显 示程序执行中记录的信息;它包括执行哪个语 句;生成的数据集中变量个数及观测个数是多 少;每一步花费的时间及出错信息等等. SAS过程产生的输出显示在输出(OUTPUT) 12 窗口.
符必须是字母(A,B,…,Z)或下划线( _ ),后面的字符
可以是字母,数字(0,1,2,…,9)或下划线.
每个SAS语句都用分号(;)结束,出现在SAS语句中 的其他特殊字符和算符有圆括号( ),美元符号($),
小数点号(.),等号(=),冒号(: )和加号(+).
5
SAS语句 SAS语句书写的格式较为灵活:
个,SAS系统8.1版本,SAS函数分为二十二种类
型共有319个函数).
20
SAS函数 SAS函数比一般高级语言的标准函数多得多. 如此丰富的SAS函数,对用户编写SAS程序带来 极大的方便.尤其是概率函数、分位数函数、 非中心函数、样本统计函数 、随机数函数,这 几类函数是一般高级计算机语言所没有的,它 们为统计分析计算提供更大的方便. 下面我们分类介绍一些SAS函数,主要介绍 用于统计计算的SAS函数.
SAS数据集的建立
优点:①输入值可按任何顺序读入,如 input count 10-12 name $ 1-8; ②字符型数据中可包含空格; ③字符型数据可以最多到 200个字符长; ④可读取全部或部分数值. 缺点:数据必须严格按照列位置输入. 注意:所读取列中只有空格或“.”时,被作为缺失值.
数 据 分 析
建立SAS数据集
数 据 分 析
建立SAS数据集
SAS的数据值被安排在一矩阵式的表状结构中, 每一行数据表示一个观测(Observation), 每一列数据表示一个变量(Variable). 变量命名:1~8个字符,第1个字符必须是字母 或者下划线,不能有空格;特殊字符(如$, @, #)不 允许在SAS名中使用;SAS系统保留的特殊变量名, 以下划线开始和结尾,有:_N_ 和 _ERROR_等. 给变量赋值: SAS系统中给变量赋值有2种方式 (1)用input语句将cards(或datelines)后面的数据 或数据文件中的数据读入SAS数据集. (2)用赋值语句将值赋给变量. 数 据 分 析
建立SAS数据集
¾常用数据步语句简介
1. DATA语句 语句格式: data <数据集名表>; DATA语句的作用是表明数据步的开始,并给出 所建数据集的名称. 临时数据集及永久数据集. 空数据集:使用_NULL_数据集名,不建立数据集. 例如: data _NULL_; a=sin(3.1415/4); b=int(a*100); put a b; /*将变量的值输出到log窗口*/ run; 自动命名:不给出数据集名,则SAS自动以data1, data2等依次命名. 当前数据集:最后建立的数据集.
SM3 建立数据集
7
标准格式的数据文件的转换
首先选择File 菜单中的Import data 按钮,就启动了 导入向导。若文件是标准数据格式,则选择Standard data source,然后在下拉菜单选具体格式。
8
三、编程方式建立数据集和录入数据
采用SAS编程方式录入实际数据是一种灵活而有 效的手段。尽管用图形界面进行各种操作已经 成为Windows时代的一种主流模式,但在一些较 复杂的、庞大的问题上,还是需要用编程模式才 能方便的给予解决。 在SAS系统中,我们可以用其两类基本过程之一 的数据步过程来完成对批量数据的录入与管理。
建立数据集变量,一般格式为: input 变量名1【变量名2 ..】【选项】【指 针】; 选项: 变量的类别:缺省为数值型,字符型$; 变量占据的宽度; 变量输入格式:主要是日期型、时间型数据 (也可以用informat定义); 格式输入、指针等;
例 data exmpl; infile ‘d:\sas\imptdt03.dat‘; input LastName $7. @9 FistName $5. @15 Job 3. @19 Salary comma9.;/*exmpl数据集中建立Lastname,
30JUL2012(9个字节)格式*/ format birthday yymmdd10.; /*birthday变量输出格式为如 2012-7-30格式*/
Lengh命令
一般情况下,变量的长度默认为8个字节,这对字符型变 量而言,只能存放8个字符(4个汉字)。 length语句可改变变量的长度属性,一般形式为: length 变量名表[$] 长度. ; 例: data tmp; length name $12.; input name$ age; cards; zhangsanfeng 56 lierwa 66 wangwujing 45 ; run;
SAS系统和数据分析建立SAS系统的数据集(DATASTEP)
第八课建立SAS系统的数据集(DATASTEP)用户用SAS数据步(DA TA STEP)创建一个数据集的方法,与前两种SAS/ASSIST和SAS/FSP创建一个数据集的方法相比,DA TA STEP是一种非交互式的全部编程实现的方法。
这种方法能把多样的、复杂的外部文件数据格式通过程序语句的控制转换为我们所需的SAS 数据集。
一、DATA程序步的三个主要步骤为了从外部原始数据文件得到SAS数据集,DATA程序步的三个主要步骤为:●启动一个数据步,命名将要创建的数据集(使用DATA语句)●确定要读入的外部文件(使用INFILE语句)●描述如何读入每一条记录(使用INPUT语句)如果需要在程序中直接嵌入数据,第二步用CARDS语句代替INFILE语句。
所对应的一般程序结构如下:Data所要创建的数据集名;Infile ‘读取的外部文件名’ < FIRSTOBS=开始读入的行>< OBS=结束行> ;Input 变量1 读入模式变量2 读入模式……;Run ;此程序结构很容易被错误理解为顺序结构,其实它的内部执行结构是一种循环结构。
如图8.1所示是它执行过程的程序流程图。
PDV (Program Data Vector )称为程序数据向量,它是根据DATA 步中的INPUT 语句所确定的变量和变量的读入模式来创建的,假设INPUT 语句中各变量的长度为 name $1-8 、sex $1-2 、bdate 1-8 、age 1-3 、height 1-6、 weight 1-6 、income 1-8、 sdate 1-6 ,所创建的一个PDV 如下表:name sex bdate age height weight income sdate8 2 8 3 6 6 8 6整个DATA 步程序执行过程中,涉及到:● 一个存放外部文件记录的输入缓冲区● 一个存放当前观测的PDV 向量● 一个外部文件记录指针● 一个程序指针● 一个SAS 数据集观测指针如图8.2所示。
SAS第二讲:编程创建SAS数据集
例9 尝试排除下列程序中的错误 例9_1,例9_2,例9_3
由于引号不配对引起程序无法
终止时,可通过提交:
Ctrl+Break
终止程序进程
13
❖Data步的编译与执行 Input语句的跟踪符号@
已读过的数据行会在下一个Input语句或数据步下一个循环中被弃用 Input语句后加入一个@:保留数据行供下一个Input语句使用;加入@@:保留数据行供下一个Input 语句及下一个循环使用
10
❖Data步的编译与执行 SAS系统处理DATA步的粗流程
源数据文件
_N_ _Error_
工作部件 Input Buffer
PDV
SAS数据集
由程序决定 由程序决定
11
❖Data步的编译与执行 数据步的执行阶段(Execution phase)
PDV中外部变量初始为缺失值(数值:句号,字符:空格) 输入原文件中每条记录至输入缓冲器,按Input语句读入PDV 在数据步结束时缺省地将PDV内容作为一条记录写入新的数据集
例1 编写程序读入数据“例1.txt”。
3
❖Data步的一般形式
数据步的一般形式
Data步一般形式2: Data 数据集名; Infile datalines(或cards) <其他选项>;
<Informat 变量名 变量输入格式; > input 变量输入设定; <Format 变量名 变量输出格式;> <Label 变量名=‘变量标签’;> datalines(或cards); 数据列 ; Run;
分隔符为空格时可缺省 可于input语句前
解决变量长度超过8的问题
默认长度为8,超过会截断
第4章 用编程读入数据建立SAS数据集
第4章用编程读入数据建立sas数据集§4.1 sas编程基本概念§4.1 概述sas语言程序由数据步和过程步组成。
sas语言的基本单位是语句,每个sas语句一般由一个关键字(如data,proc,input,cards,by)开头,包含sas名字、特殊字符、运算符等,以分号结束。
sas关键字是用于sas语句开头的特殊单词,sas语句除了赋值、累加、注释、空语句以外都以关键字开头。
sas名字在sas程序中标识各种sas成分,如变量、数据集、数据库,等等。
数据步和过程步数据步用来生成数据集(从数据片中或外部数据文件中读取数据)、计算整理数据等。
语法:data 数据集名;.....;run;过程步:面向SAS数据集,完成某个特定的计算、分析和呈现功能语法:proc 过程名;......;run;sas程序的书写规则sas程序是由一至多个数据步骤(data step)和过程步(Procedure Step)互相交叉组合而形成。
根据各个数据步骤的属性或过程步的功能,来实现sas 数据文件的建立、进行统计分析等。
sas系统的编译方式是以数据步或过程步为一个区块来编译的,语法编译无误便开始执行该数据步或过程步,执行完整一个数据步或过程步区块后便继续处理下一个数据步或过程步。
一个区块接一个区块地将所有程序代码编译及执行完后,便完成了该程序的执行。
sas程序代码提交出去,便已将程序交由sas系统去完成。
用户必须确定sas系统在log窗口中是否有显示错误的程序代码,分析数据的属性是否正确。
sas的程序代码是自由格式的程序代码,每个语句由关键词开始,以“;”作为一个程序语法的结束;一行可以含多个程序语句;一个程序语句也可以分成多行,但必须以空格(只要有一个空格的地方,就可用任意多个空格来替代)为分隔。
注:在命令框中键入num即可显示或取消行数。
指定逻辑库名与逻辑文件名指定逻辑库名在sas系统中只有sas数据集才能被sas过程直接调用,sas数据集的结构和dbf数据库完全相同。