京公网安备 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
在零售行业从“流量争夺”转向“价值深耕”的演进中,塔吉特百货(Target)以两场标志性实践树立了行业标杆——2000年后的孕妇精 ...
2025-12-15在统计学领域,二项分布与卡方检验是两个高频出现的概念,二者都常用于处理离散数据,因此常被初学者混淆。但本质上,二项分布是 ...
2025-12-15在CDA(Certified Data Analyst)数据分析师的工作链路中,“标签加工”是连接原始数据与业务应用的关键环节。企业积累的用户行 ...
2025-12-15在Python开发中,HTTP请求是与外部服务交互的核心场景——调用第三方API、对接微服务、爬取数据等都离不开它。虽然requests库已 ...
2025-12-12在数据驱动决策中,“数据波动大不大”是高频问题——零售店长关心日销售额是否稳定,工厂管理者关注产品尺寸偏差是否可控,基金 ...
2025-12-12在CDA(Certified Data Analyst)数据分析师的能力矩阵中,数据查询语言(SQL)是贯穿工作全流程的“核心工具”。无论是从数据库 ...
2025-12-12很多小伙伴都在问CDA考试的问题,以下是结合 2025 年最新政策与行业动态更新的 CDA 数据分析师认证考试 Q&A,覆盖考试内容、报考 ...
2025-12-11在Excel数据可视化中,柱形图因直观展示数据差异的优势被广泛使用,而背景色设置绝非简单的“换颜色”——合理的背景色能突出核 ...
2025-12-11在科研实验、商业分析或医学研究中,我们常需要判断“两组数据的差异是真实存在,还是偶然波动”——比如“新降压药的效果是否优 ...
2025-12-11在CDA(Certified Data Analyst)数据分析师的工作体系中,数据库就像“数据仓库的核心骨架”——所有业务数据的存储、组织与提 ...
2025-12-11在神经网络模型搭建中,“最后一层是否添加激活函数”是新手常困惑的关键问题——有人照搬中间层的ReLU激活,导致回归任务输出异 ...
2025-12-05在机器学习落地过程中,“模型准确率高但不可解释”“面对数据噪声就失效”是两大核心痛点——金融风控模型若无法解释决策依据, ...
2025-12-05在CDA(Certified Data Analyst)数据分析师的能力模型中,“指标计算”是基础技能,而“指标体系搭建”则是区分新手与资深分析 ...
2025-12-05在回归分析的结果解读中,R方(决定系数)是衡量模型拟合效果的核心指标——它代表因变量的变异中能被自变量解释的比例,取值通 ...
2025-12-04在城市规划、物流配送、文旅分析等场景中,经纬度热力图是解读空间数据的核心工具——它能将零散的GPS坐标(如外卖订单地址、景 ...
2025-12-04在CDA(Certified Data Analyst)数据分析师的指标体系中,“通用指标”与“场景指标”并非相互割裂的两个部分,而是支撑业务分 ...
2025-12-04每到“双十一”,电商平台的销售额会迎来爆发式增长;每逢冬季,北方的天然气消耗量会显著上升;每月的10号左右,工资发放会带动 ...
2025-12-03随着数字化转型的深入,企业面临的数据量呈指数级增长——电商的用户行为日志、物联网的传感器数据、社交平台的图文视频等,这些 ...
2025-12-03在CDA(Certified Data Analyst)数据分析师的工作体系中,“指标”是贯穿始终的核心载体——从“销售额环比增长15%”的业务结论 ...
2025-12-03在神经网络训练中,损失函数的数值变化常被视为模型训练效果的“核心仪表盘”——初学者盯着屏幕上不断下降的损失值满心欢喜,却 ...
2025-12-02