前面几篇读书笔记介绍了SAS的基本概念和语言构成,从本篇开始将和大家一起学习SAS的数据管理功能。
1. SAS数据步的运行机制
data a;
put x= y= z=;
input x y;
z=x+y;
put x= y= z=;
cards;
10 20
100 200
;
run;
运行结果
x=. y=. z=.
x=10 y=20 z=30
x=. y=. z=.
x=100 y=200 z=300
x=. y=. z=.
NOTE: 数据集 WORK.A 有 2 个观测和 3 个变量。
从这个例子可以看出SAS数据步程序和普通程序的一个重大区别:SAS数据步如果有数据输入,比如用INPUT、SET、MERGE、UPDATE、MODIFY等语句读入数据,则数据步中隐含了一个循环,即数据步程序执行到最后一个语句后,会返回到数据步内的第一个可执行语句开始继续执行,直到读入数据语句(INPUT、SET、MERGE、UPDATE、MODIFY等)读入了数据结束标志为止才停止执行数据步,并把读入的各个观测写入在DATA语句中指定的数据集。如果没有数据输入而只是直接计算,则数据步程序不需要此隐含循环。
从原始数据输入要使用input语句,数据的行写在cards语句和一个只有一个顶头的分号的行之间。
例如:自由格式
data a;
input name $ sex $ math chinese;
cards;
黎明 男 98 97
张红 女 94 98
;
run;
如果各数据行的各个数据项是上下对齐的,还可以使用INPUT语句的列方式。这时,除了在INPUT关键字后面列出变量名外,还需要在每个变量名(及$符)后面列出该变量在数据行中所占据的起始位置与结束位置。
列方式不要求数据项之间分开,所以经常用来输入紧缩格式的数据。比如,我们要输入一批身份证号码,但只输入其中的出生年、月、日信息,就可以用如下程序
如果需要完全原样地输入字符型数据(包括头尾空格、单独的小数点),可以用有格式输入,即在字符型变量名和$符后加上一个输入格式如CHAR1O.表示读入10个字符。
有特殊格式的数据需要用有格式输入,即在变量名后加格式名。其中最常见的是用来输入日期。数据中的日期写法经常是多种多样的,比如1998年10月9日可以写成"1998-10-9","19981009","9/10/98"等等,为读入这样的日期数据就需要为它指定特殊的日期输入格式。另外,日期数据在SAS中是按数值存储的,所以如果要显示日期值,也需要为它指定特殊的日期输出格式。例如:
变量的属性包括:
(1)字符型还是数值型。INPUT语句读入字符型数据时要在变量名后面加$符。
(2)变量标签(LABEL)。可以给变量加一个长度不超过40个字符的标签(可以用汉字,不超过20个汉字),标签可以用在以后的报表中。
(3)变量存储长度(LENGTH)。数值型数据一般长度为8字节,也可以对取值范围小的变量规定较小的长度以节省存储空间。字符型变量长度为其能存储的字符个数,缺省为8个字节
数据步中的ATTRIB语句可以指定变量的这些属性。格式为:ATTRIB 变量名 属性 变量名 属性…;
可以同时指定多个变量的属性。属性为"属性名=属性值"这样的写法,可以为一个变量同时指定多个属性。见如下的例子
文本格式:把原始数据放在一个普通的文本格式的文件中,然后用INFILE语句指定输入文件名。例如,我们可以把数据行单独生成一个文本文件aa.txt,假设放在了f:\中,可以用如下程序读入文件中的数据并生成数据集:
data zz;
infile 'f:\aa.txt';
input name $ sex $ age;
run;
proc print;
run;
注意INFILE语句要写在INPUT语句之前,有INFILE语句就不再有CARDS语句和空语句。INFILE关键字后面跟的是一个包含文件名的字符串,可以使用全路径名,如果只有文件名则在当前工作目录寻找。
微机格式的数据文件
可以使用SAS系统File菜单中的Import命令读入其它格式的文件。并且可以将操作步骤的程序保存下来留着下次用。
与大型数据库的接口
SAS提供了两种办法可以访问大型数据库。SAS/ACCESS 可以直接连接Oracle、SYbase、SQLServer等大型数据库。为了访问储存在这些数据库中的表,需要对数据库中的表在SAS中建立访问描述文件(access descriptor),和视图描述文件(view descriptor)。例如,在数据库服务器DBIN中有一个数据库Finance,其中有一个表Sales,用户名guest用密码anyone可以访问此库,就可以用以下程序在SAS中建立访问描述文件和视图文件:
其中大写的部分是固定的。这段程序首先生成了访问描述文件SASUSER. SALES. ACCESS,然后由此访问描述文件生成了视图文件SASUSER. SALESALL.VIEW。在SAS中视图文件和数据集的使用是一样的,可以使用数据集的地方都可以使用视图文件。
可以用SET语句把一个已有数据集复制到一个新数据集,同时还可以进行修改。如果只是复制数据集,也可以用SAS管理器(SAS Explorer)完成。比如要把数据集WORK.C9501复制为数据集SASUSER.CLS,只要用如下程序:
data sasuser.cls;
set c9501;
run;
在复制的同时我们还可以用SAS程序语句对生成的数据集进行修改。比如,我们把超过100分的语文成绩都改为100分,就可以用如下程序:
data c9501a;
set c9501;
if chinese>100 then chinese=100;
run;
在数据步中可以用KEEP语句或DROP语句指定要保留的变量或要丢弃的变量。
也可以指定一个条件取出数据集的某些行组成的子集。比如,我们希望取出数学分数90分以上,语文分数100分以上的学生的观测,可以用如下的"子集IF语句":
在用SET语句引入数据集时可以给引入的数据集加选项,选项放在数据集名后的括号内:
数据集名(数据集选项)
选项包括KEEP=,表示引入时只要指定的变量;DROP=,表示不引入指定的变量;OBS=,表示读取观测时读到指定的序号为止(是序号而不是观测数);FIRSTOBS=,表示从指定序号的观测开始读取而跳过之前的观测不读。
数据分析咨询请扫描二维码
数据收集与整理 - 从各种来源收集数据,清洗和整理以确保数据质量和可用性。 数据分析与建模 - 运用统计学方法和机器学习模型对 ...
2024-11-26技术技能 - 编程能力: 数据分析师需要掌握至少一门编程语言,如Python、R或SQL。这些语言对于数据处理、建模和分析至关重要。例 ...
2024-11-26数据分析领域涵盖多样性岗位,根据工作职责和技能需求划分。这些角色在企业中扮演关键角色,帮助组织制定战略、优化流程并实现商 ...
2024-11-26数据分析是一种通过收集、处理、解释和展示数据,以获得见解和决策支持的过程。这个领域涉及使用统计学、计算机科学和商业智能等 ...
2024-11-26数据分析领域正日益成为当今商业世界中不可或缺的一环。随着数据量的爆炸式增长,企业越来越需要能够从这些海量信息中提炼出宝贵 ...
2024-11-26数据分析师需要学习的课程内容非常广泛,涵盖了从基础理论到实际应用的多个方面。在追求这一职业道路上,合适的教育和培训至关重 ...
2024-11-26数据分析师作为当今信息时代中关键的职业之一,扮演着解释、预测和推动决策的重要角色。他们需要多方位技能来处理各种复杂的数据 ...
2024-11-26数据分析师在今天的商业环境中扮演着至关重要的角色。他们需要应对各种复杂的数据分析任务和业务需求,这要求他们具备广泛的技能 ...
2024-11-26在当今快速变化的技术和市场环境中,数字化转型是企业利用数字技术全面重新设计和改造业务的重要过程。这一转型旨在通过整合云计 ...
2024-11-26数字化转型: 是企业在现代技术和市场环境不断变化的背景下,利用数字技术对其业务进行全面的重新设计和改造的过程。其核心目标是 ...
2024-11-26理论基础与高级学习 数学专业理论基础: 学生首先需要掌握数学的基础理论,包括数学分析、高等代数、几何学、常微分方程、实变函 ...
2024-11-26数字化转型:现代企业蜕变的引擎 数字化转型已然成为当今企业持续发展的关键支柱。这一过程并非简单的技术升级,更是涉及企业文 ...
2024-11-26# 数据科学与大数据技术专业学什么?就业前景与行业需求 **数字化转型:引领企业进步的关键** 数字化转型是现代企业发展的必经 ...
2024-11-26理论部分 - 基础数学理论: - 学生首先需要掌握数学的基础理论,包括数学分析、高等代数、几何学、常微分方程等。 - 这些课程 ...
2024-11-26在选择数据科学和大数据技术专业时,了解不同领域的职责和技能需求至关重要。数据治理工程师是这一领域中不可或缺的角色之一,承 ...
2024-11-26基础课程 统计学基础 - 统计学是数据分析的基石,包括概率、假设检验、回归分析等基本知识,有助于理解数据背后的意义。 - ...
2024-11-26数据分析是一门综合性学科,涉及多个领域的知识和技能。要全面掌握数据分析,需要学习以下内容: 基础课程 统计学基础:统计学 ...
2024-11-26数据治理工程师在当今信息时代扮演着至关重要的角色,负责确保组织内数据的质量、安全性和可用性。他们需要具备一系列技能和才能 ...
2024-11-26在当今数字化时代,数据被誉为新的石油,是企业最有价值的资产之一。因此,建立有效的数据战略规划对于企业的成功至关重要。数据 ...
2024-11-26<section id=
2024-11-26