SAS中的Order By - Proc Sort
1.排序proc sort
proc sort在按数据集中某一个变量或几个变量的升序或降序将记录重新排列,并把结果保存在输出数据集中,如果不另外指定输出数据集,则覆盖输入数据集。
在data步和proc步某些操作中,当需要用到by语句时,一般都需要源数据集按照by语句中的变量事先排序,这里就需要用到proc
sort。
By - Proc Sort">
(1)语法格式
PROC SORT ;
BY variable-1 <... variable-n>;
proc sort一些常用的选项:
·数据集选项
data= 输入数据集,缺省时使用最近创建的数据集
out= 输出数据集,缺省时表示排序后覆盖源数据集
·排序序列选项
sortseq=
指定排序的序列,这跟使用的操作系统有关,Windows/Unix都是ASCII编码,一般这个选项缺省就行;也可以直接在proc
sort后面加上编码名称。
·修改排序次序的选项
reverse
使用由正常排序序列相反的排序序列对字符变量进行排序,可以被by语句中的descending选项取代,reverse只能用于字符变量。
equals|noequals
规定输出数据集中具有相同by变量的那些记录的次序,equals选项是保持在输入数据集中原来的相对次序,而noequals选项则没有这一限制。
·删除重复记录的选项
noduprecs 删除重复的记录,发生在排序后,将完全相同的记录删除。
nodupkey
删除重复的by变量记录,发生在排序中,sort过程读取输入数据集中的记录,在写入输出数据集时先比较by变量值,如有重复则部写入输出数据集。这个选项要小心使用,因为SAS会删除by变量重复的记录,而不管该记录是不是重复的,这样就会丢失有效的数据。
·其他选项
datecopy
保留数据集创建或修改的日期,缺省时排序也会被认为是修改,上次的修改时间就会被覆盖,可是有些时候我们并不希望SAS这么做。
force 强制排序,不管输入数据集是否已经排序或有索引,都进行重新排序
内存与磁盘优化选项排序在各种语言中是一种基本的算法,当数据集很大时会占用大量的计算机资源,这些选项提供算法在这方面的优化。
by语句
缺省情况下,是按照变量进行升序排列(ascending),降序则要显性的用descending指明。
特别的是,这两个关键字应该写在变量的前面,而其他语言可能相反,如SQL将排序关键字放在变量之后。
(2)运行机制
proc
sort会先检查输入数据集的排序信息,特别是sortedby=选项,如果输入数据集提示已经按照by变量进行过排序,或者sort过程检测到数据集中记录的顺序按照by变量本来就是有序的,则proc
sort就会偷懒,不进行排序,直接将输入数据集复制到输出数据集中;另外,如果输入数据集在by变量上已经创建索引,则也不进行排序,因为排序之后会破坏原来的索引。除此之外,proc
sort才会进行排序。
那么,如果用户要强制sort过程进行排序呢?那就需要用到force选项了。
(3)实例
对数据集按年龄大小进行排序,相同年龄的观测仍然按原来的次序。
proc sort data=age equals;http://www.cda.cn/view/18248.html
by age;
run;
SAS中的Order By - Proc Sort的更多相关文章
- Hive中的order by、sort by、distribute by、cluster by解释及测试
结论: order by:全局排序,这也是4种排序手段中唯一一个能在终端输出中看出全局排序的方法,只有一个reduce,可能造成renduce任务时间过长,在严格模式下,要求必须具备limit子句. ...
- 2.12 Hivet中order by,sort by、distribute by和cluster by
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy 一.order by 对全局数据的排序,仅仅只有一个red ...
- SAS中的聚类分析方法总结
SAS中的聚类分析方法总结 说起聚类分析,相信很多人并不陌生.这篇原创博客我想简单说一下我所理解的聚类分析,欢迎各位高手不吝赐教和拍砖. 按照正常的思路,我大概会说如下几个问题: 1. 什么是 ...
- PROC SORT
PROC SORT DATA=输入数据集 <OUT=输出数据集><选项>; BY 关键变量; RUN; PROC SORT 语法如上,其中在尖括号中的可以不出现,也不会报错. ...
- Hive中的Order by与关系型数据库中的order by语句的异同点
在Hive中,ORDER BY语句是对查询结果集进行整体的排序,最终将会产生一个reducer进行全局的排序,达到的最终结果是和传统的关系型数据库是一样的. 在数据量非常大的时候,全局排序的单个red ...
- mysql中的order by
一.order by的原理 1.利用索引的有序性获取有序数据 当查询语句的 order BY 条件和查询的执行计划中所利用的 Index 的索引键(或前面几个索引键)完全一致,且索引访问方式为 ran ...
- hive的排序 order by和sort by
在算法中,各个排序算法的复杂度都比较高,正常情况下为O (nlogn) ,所以当数据量特别大的时候,对数组进行排序消耗都很大. 因为hive的计算引擎MapReduce是分布式系统, 利用分布式的特点 ...
- 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY
正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade 随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ...
- SAS中常见的数组函数
SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...
随机推荐
- hive 分桶及抽样调查
1.分桶的概述 分区提供了一个隔离数据和优化查询的遍历方式.不是所有的数据集都可形成合力的分区 对于一张表或者分区,hive可以进一步组织成桶,也就是更为细粒度的数据范围 分区针对的是数据的存储路径( ...
- Django中content-type组件
django-content 1.需求 一家餐馆,有多个菜系,粤菜.湘菜.闽南菜.东北菜等,每个菜系中的菜品又分为小份.中份.大份,每个菜系对应的菜品量价格不同,现需要将该需求建表. 2. 建表方式 ...
- Numpy的基础使用
数据分析: 是把隐藏在一些看似杂乱无章的数据背后的信息提取出来,总结出所研究对象的内在规律 数据分析的三剑客: Numpy, Pandas, Matplotlib NumPy(Numerical Py ...
- 故事版(storyBoard)-lllegal configuration connection cannot have a prototype objct as
今天下午做项目的时候.居然出了一个太不是问题的问题了,这个错误太低级了. lllegal configuration connection 'flagImg' cannot have a protot ...
- NGUI的anchors属性的使用
一,anchors锚点 我们需要明白target目标的使用,这时是你下面使用left,right,bottom和top的距离,比如我们使用目标为UI Root,这个就是摄像机的视野,所以,我们使用an ...
- K3 cloud中消耗性生物资产已郁闭达到可销售状态,要从消耗性生物资产转至库存商品,要如何结转?
处理方法: 先做出库单,然后做入库单,选择细目的时候出库单选择的是消耗性生物资产中的细目,如图所示: 然后入库的时候选择库存商品,如下图所示:
- 有关css的兼容问题
兼容性 1 页面在不同浏览器中可能显示不同 在IE6下 子级的宽度会撑开父级设置好的宽度 温馨提示:和模型的计算一定要精确,IE浏览器可能显示不同 兼容性 2 在IE6中,元素浮 ...
- react native 打包至iphone设备
1.新建bundle 在自己项目的ios文件夹下新建一个文件夹取名bundle PS:ios文件夹和node_modules文件夹在同一级目录下,这个bundle文件夹名称随意取,后面要用到,但是记得 ...
- CLR 垃圾回收知识梳理
- XMPP即时通讯协议使用(三)——订阅发布、断开重连与Ping
package com.testV3; import java.util.List; import org.jivesoftware.smack.ConnectionListener; import ...