京公网安备 11010802034615号
经营许可证编号:京B2-20210330
前面几篇读书笔记介绍了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=,表示从指定序号的观测开始读取而跳过之前的观测不读。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
金融统计不是单纯的 “数据计算”,而是贯穿金融业务全流程的 “风险量化工具”—— 从信贷审批中的客户风险评估,到投资组合的 ...
2025-11-11这个问题很有实战价值,mtcars 数据集是多元线性回归的经典案例,通过它能清晰展现 “多变量影响分析” 的核心逻辑。核心结论是 ...
2025-11-11在数据驱动成为企业核心竞争力的今天,“不知道要什么数据”“分析结果用不上” 是企业的普遍困境 —— 业务部门说 “要提升销量 ...
2025-11-11在大模型(如 Transformer、CNN、多层感知机)的结构设计中,“每层神经元个数” 是决定模型性能与效率的关键参数 —— 个数过少 ...
2025-11-10形成购买决策的四个核心推动力的是:内在需求驱动、产品价值感知、社会环境影响、场景便捷性—— 它们从 “为什么买”“值得买吗 ...
2025-11-10在数字经济时代,“数字化转型” 已从企业的 “可选动作” 变为 “生存必需”。然而,多数企业的转型仍停留在 “上线系统、收集 ...
2025-11-10在数据分析与建模中,“显性特征”(如用户年龄、订单金额、商品类别)是直接可获取的基础数据,但真正驱动业务突破的往往是 “ ...
2025-11-07在大模型(LLM)商业化落地过程中,“结果稳定性” 是比 “单次输出质量” 更关键的指标 —— 对客服对话而言,相同问题需给出一 ...
2025-11-07在数据驱动与合规监管双重压力下,企业数据安全已从 “技术防护” 升级为 “战略刚需”—— 既要应对《个人信息保护法》《数据安 ...
2025-11-07在机器学习领域,“分类模型” 是解决 “类别预测” 问题的核心工具 —— 从 “垃圾邮件识别(是 / 否)” 到 “疾病诊断(良性 ...
2025-11-06在数据分析中,面对 “性别与购物偏好”“年龄段与消费频次”“职业与 APP 使用习惯” 这类成对的分类变量,我们常常需要回答: ...
2025-11-06在 CDA(Certified Data Analyst)数据分析师的工作中,“可解释性建模” 与 “业务规则提取” 是核心需求 —— 例如 “预测用户 ...
2025-11-06在分类变量关联分析中(如 “吸烟与肺癌的关系”“性别与疾病发病率的关联”),卡方检验 P 值与 OR 值(比值比,Odds Ratio)是 ...
2025-11-05CDA 数据分析师的核心价值,不在于复杂的模型公式,而在于将数据转化为可落地的商业行动。脱离业务场景的分析只是 “纸上谈兵” ...
2025-11-05教材入口:https://edu.cda.cn/goods/show/3151 “纲举目张,执本末从。” 若想在数据分析领域有所收获,一套合适的学习教材至 ...
2025-11-05教材入口:https://edu.cda.cn/goods/show/3151 “纲举目张,执本末从。” 若想在数据分析领域有所收获,一套合适的学习教材至 ...
2025-11-04【2025最新版】CDA考试教材:CDA教材一级:商业数据分析(2025)__商业数据分析_cda教材_考试教材 (cdaglobal.com) ...
2025-11-04在数字化时代,数据挖掘不再是实验室里的技术探索,而是驱动商业决策的核心能力 —— 它能从海量数据中挖掘出 “降低成本、提升 ...
2025-11-04在 DDPM(Denoising Diffusion Probabilistic Models)训练过程中,开发者最常困惑的问题莫过于:“我的模型 loss 降到多少才算 ...
2025-11-04在 CDA(Certified Data Analyst)数据分析师的工作中,“无监督样本分组” 是高频需求 —— 例如 “将用户按行为特征分为高价值 ...
2025-11-04