上篇文章讲了一部分SAS处理数据的函数,由于函数实在太多,所以我就大概计划分3篇文章进行叙述,现在这个是第2篇~这篇主要集中在过程步的函数讲解~

1)SAS过程步常用语句

大部分过程步都有一个必须的语句,也有可选的语句,比如打印语句:proc print,这两个词是必须的,但可选的语句也有很多。

① Proc语句 

所有的语句的必须部分为proc+过程名,比如print、contents等。后面接一些可选项。

data=filename选项告诉SAS打印哪个文件,如果不加,则SAS默认打印最近使用的数据

前面还可以加libname语句,建立一个对本地文件的链接(2.20),比如:

LIBNAME tropical 'c:\MySASLib';

PROC CONTENTS DATA=tropical.banana;

或者直接引用:PROC CONTENTS DATA='c:\MySASLib\banana';

② BY语句 

BY语句只在过程proc sort中是必须的,它用来对观测值排序。其他过程BY告诉过程对变量进行分别分析,且是可选的。

另外,除了proc sort,其他过程都假设了数据已经进行了排序,所以如果数据还没有排序,那么在分析之前要用proc sort排序。

③ TITLE 和FOOTNOTE语句 

这是为输出加上标题和脚注。最基本的title语句为:title ‘标题’,双引号、单引号皆可,比如:

TITLE 'This is a title';

如果标题中带有撇号,则需用双引号,或者将撇号换为双撇号:

TITLE ”Here’s another title”;

TITLE ’Here’’s another title’;

可以通过在title、footnote后面加上数字来添加多个标题和脚注:

FOOTNOTE3 ’This is the third footnote’;

但是小数字的标题会代替大数字的标题,如title2会代替title3。

④ Label语句 

它可以为输出的变量加上标签,一个标签最大256字节,下面的代码为receivedate和shipdate创建了标签:

LABEL ReceiveDate=’Date order was received’

ShipDate=’Date merchandise was shipped’;

注意的是,在数据步中使用label语句,则标签会保存在数据集中;在过程步中使用,标签只在这个过程中有效。

⑤ 定制输出 

使用系统选项,可以为输出设置诸如居中、日期、单行长度、页长度等。使用Output Delivery System,还可以改变输出的风格,以不同的格式输出(HTML、RTF),甚至改变输出的任何细节。

2)在过程步中使用where构建子集

如果在数据步中没有进行数据子集的生成,没关系,过程步也是可以有语句进行实现的,那就是where语句。

Where语句的基本形式为:

WHERE condition;

只有满足条件的观测值才进行proc过程。

一些使用最多的操作符及例子:

3)在过程步中进行数据排序

基本形式为:

PROC SORT;

BY variable-1...variable-n;

SAS首先会按照第一个变量排序,再对后面的排序。

Data=,out=用来指定输入和输出数据如果缺失out=,则SAS会将排序后的数据集代替原来的数据集。下面的代码告诉SAS对数据messy排序,并将排序后的数据存在neat中:

PROC SORT DATA=messy OUT=neat;

选项nodupkey告诉SAS排序时删除重复值,比如:

PROC SORT DATA=messy OUT=neat NODUPKEY;

SAS默认是升序,如

BY StateDESCENDING City;

举个例子:

下面的数据显示了一些鲸鱼和鲨鱼品种的平均长度:

下面的代码读取并排序数据

输出结果为:

4)在过程步中进行数据打印

基本形式:PROC PRINT;

SAS默认打印最近使用的数据集,DATA=可以指定数据集:

PROC PRINT DATA=data-set;

SAS默认打印观测值数,noobs选项可以取消。SAS默认打印时用变量标签代替变量,用label可以改变取消

PROC PRINT DATA=data-set NOOBS LABEL;

还有下面的选项:

① BY variable-list; 前提是数据必须进行排序

② ID variable-list; 指定观测变量

③ SUM variable-list; 打印变量总数

④ VAR variable-list; 指定打印哪部分变量以及打印顺序,默认打印全部。

这个还是也举个栗子~

有学生卖糖果的数据,Candy.dat,记录学生名、所属班级、销售日期、卖的糖果类型、卖出的糖果数。

下面的程序读取数据、计算每个学生赚得的利润(每买一块赚1.25美元),并用procsort按班级排序。接着在procprint语句中加入by,以分班级打印,加入sum,计算每个班级总利润:

输出结果为:

5)利用formats改变打印外观

打印数据时,SAS会自动为你安排最好的格式,小数点位数、空格等。当不需要默认格式时,可以用SAS formats改变打印的外观。

对于字符串、数值、日期变量,SAS有很多格式。比如可以用commaw.d格式打印有逗号的数字,用$w.格式控制打印的字符数,用MMDDYYw.格式将日期(以1960.1.1为基点的数字)打印成12/03/2003这样的格式。甚至可以将格式打印成十六进制、区位十进制、压缩十进制等。

SAS格式的普通形式为:

符号说明:$说明了是字符串、format是格式名、w是包括在小数点在内的长度、d是小数位数。句号非常重要,它用来区分格式名和变量名。

① Format语句 

可以用format语句同时将格式和变量联系起来,用format+变量名+格式名,比如想要将格式DOLLAR8.2和变量profit、loss联系起来,把格式MMDDYY8.和格变量saledate联系起来:

FORMAT Profit Loss DOLLAR8.2 SaleDate MMDDYY8.;

Format可以用在数据步和过程步中,前者将把格式永久储存,后者只是临时储存。

注:DOLLAR8.2表示打印的结果字符数不超过8(数值+$)。

② Put语句 

当写原始数据或者报告时,也可以在put语句中使用formats,在每个变量后面加上格式:

PUT Profit DOLLAR8.2 Loss DOLLAR8.2 SaleDate MMDDYY8.;

format语句可能是用得比较多的了,下面对这个语句可能用到的内容罗列一下:

下面就上面的内容举一下例子:

好了,over~

#SAS学习-数据加工处理-中相关推荐

  1. 计算机系统中数据加工过程中,数据库系统复习题-第1章绪论

    使用数据库系统有什么好处?(填空题) 使用数据库系统的好处是由数据库管理系统的特点或优点决定的. 使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的 ...

  2. C语言中数据在内存中的存储

    要想了解数据在内存中的存储的话,首先应该了解数据的类型. 下面介绍C语言中数据类型: 1.C语言中的基本内置类型: char //字符数据类型 大小为1个字节 short //短整型 大小为2个字节 ...

  3. 特征重要性、特征集成+FeatureUnion、特征选择变换器+ColumnTransformer、标签特征变换+TransformedTargetRegressor、特征质量、自动学习数据中的特征

    特征重要性.特征集成+FeatureUnion.特征选择变换器+ColumnTransformer.标签特征变换+TransformedTargetRegressor.特征质量.自动学习数据中的特征 ...

  4. 置信学习:让样本中的“脏数据“原形毕露

    在实际工作中,你是否遇到过这样一个问题或痛点:无论是通过哪种方式获取的标注数据,数据标注质量可能不过关,存在一些错误?亦或者是数据标注的标准不统一.存在一些歧义?特别是badcase反馈回来,发现训练 ...

  5. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  6. mysql 如何对表排序_学习MySQL:对表中的数据进行排序和过滤

    mysql 如何对表排序 In this article, we will learn how we can sort and filter data using the WHERE clause a ...

  7. 小猪的Python学习之旅 —— 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中

    小猪的Python学习之旅 -- 14.项目实战:抓取豆瓣音乐Top 250数据存到Excel中 标签:Python 一句话概括本文: 利用Excel存储爬到的抓取豆瓣音乐Top 250数据信息,还有 ...

  8. 数据库SQL语言学习--数据查询(持续更新中)

    数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.   ...

  9. 医疗大数据在学习型健康医疗系统中的应用

    点击上方蓝字关注我们 医疗大数据在学习型健康医疗系统中的应用 柴扬帆1,2, 孔桂兰1, 张路霞1 1 北京大学健康医疗大数据国家研究院,北京 100191 2 北京大学公共卫生学院,北京 10019 ...

最新文章

  1. Struts2.0下的客户端验证
  2. python数值型转换字符型_2.6 字符型常量
  3. 加载静态文件,父模板的继承和扩展(2017.11.3)
  4. java 减少内存_java中减少内存占用小技巧
  5. MNS消息服务计费处理参考
  6. uwp 获取listviewitem里的控件_[UWP]占领标题栏
  7. 两级页表如何实现地址转换
  8. javascript 判断string是否包含某个字符串
  9. python核心编程源代码
  10. pycharm无需汉化教程(无需下载汉化包)
  11. html引入思源黑体
  12. HDU 6405 Make ZYB Happy 后缀自动机 前缀和优化
  13. 【电商】电商后台---商品管理系统
  14. Python 实现简单虚拟跑步机计算消耗的能量
  15. java 高内聚低耦合_高内聚低耦合法则实例解析
  16. 【微服务】如何实现微服务集群的高可靠?
  17. 谷歌浏览器自带翻译网页插件没用了怎么办?这里有解决办法。
  18. android快牙原理,实测快牙的真实传输速度
  19. postman json格式文档转word表格文档
  20. [从头读历史] 第269节 诗经 卫风

热门文章

  1. 西安交通大学本科毕业论文答辩PPT模板
  2. 【软件测试自动化-QTP系列讲座 11】== AOM应用(一)+QuickTest+Automation ==
  3. Android应用优化方案一
  4. C#多线程之 线程池 ThreadPool介绍
  5. vue3 使用teleport报错 找不到‘parentNode‘节点(未解决)
  6. 高德地图label换行
  7. 实验及工程技术人员招聘 | 华南理工大学广州国际校区
  8. 国内某知名软件更新的安全分析
  9. 炫酷的VS Code毛玻璃效果
  10. Mac 批量重命名(增加前缀后缀)