SAS index 索引

最近在处理数据量较大的项目时,应用到index索引与HASH对象的结合使用,总结一下对index作为建索引的相关知识点

 1.概念

索引:索引是一种辅助的数据结构,通过一个或者多个关键变量来直接指向观测。SAS索引有两类,简单索引:只基于一个变量的值,索引名自动等于关键变量名;复合索引:基于多于一个的关键变量,需自定义唯一的名称

 2.什么情况使用索引

 虽然索引可以看成指向数据的快捷方式,但是索引的开销相当高,包括磁盘空间的开销及处理等,所以要考虑建立索引的情况:

访问的观测远远小于总体

用于BY语句引用已排序的变量

 3.如何建索引

 3.1 DATA

/*简单索引*/

DATA  A(INDEX=(age));

SET SASHELP.CLASS;

RUN;

/*复合索引*/

DATA B(INDEX=(A_W=(AGE WEIGHT)));

SET SASHELP.CLASS;

RUN;

 3.2 PROC SQL

PROC SQL;

DROP INDEX AGE FROM A;

CREATE INDEX AGE ON A(AGE);/*简单索引*/

CREATE INDEX A_W ON A(AGE,WEIGHT);/*复合索引*/

QUIT;

 3.3 PROC DATASETS

PROC DATASETS LIB=<libname>;

MODIFY <datasetname>;

INDEX CREATE <index_name>/<NOMISS> <UNIQUE>

<UPDATECENTILES=ALWAYS|NEVER|integer>

RUN;

这里:

libname:逻辑库名称

Datasetname:数据集名称

Index_name:索引名,可以是一个关键变量名,也可以是自定义的变量名,但需要指定对应哪几个变量

选项中:

NOMISS:从索引中排除所有索引变量缺失值的观测

UNIQUE:指定索引变量或者变量组合必须是唯一的

UPDATECENTILES:指定数据值更新多少时,索引也随之更新,可以是总是更新|从不更新|设定的百分比10(表示10%),默认是5(percent)

 

LIBNAME S ‘.’;

/*简单索引;指定对S逻辑库下A数据集,以AGE为关键变量建索引*/

PROC DATASETS LIB=S;

MODIFY A;

INDEX CREATE AGE;

RUN;

/*复合索引:三个关键变量括号里的顺序为关键次序,A_W_H是唯一的索引名*/

PROC DATASETS LIB=S;

MODIFY A;

INDEX DELETE AGE;/*删除索引*/

INDEX CREATE A_W_H=(AGE,WEIGHT,HEIGHT);

RUN;

需要注意的是,如果原有的索引已经存在,必须先删除,再重新建立

 4. OPTIONS MSGLEVEL=N|I;查看索引的使用情况

N:仅打印NOTES、WARNING、ERROR信息,系统的默认选项。

I:打印N选项的信息,同时打印附属信息,包括索引的使用、合并处理、排序等附加信息。

5.SAS不使用索引的情况

(1) DATA步使用IF语句取子集

(2)WHERE 表达式只有部分包含关键变量

(3)SAS检测出顺序读取数据更有效率

6.示例:实现对年龄的分组,组内排序


 

 

结果:




 

参考文档:http://blog.163.com/shen_960124/blog/static/6073098420136161844551/和SAS help

 

转载于:https://www.cnblogs.com/Anni-love-Ferris-wheel/p/7686842.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于您提到的SAS varianceinflation问题,很抱歉,根据我所能找到的引用内容,没有找到与SAS varianceinflation直接相关的信息。请您提供更多详细的问题或背景信息,以便我能够更好地回答您的问题。谢谢!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SAS 9.4 SID服务器通用版 续订更新SAS SID 2023 可用至2023年1月sas sid 2022 server](https://download.csdn.net/download/nchkchy/85373195)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SAS SID 2023续订更新SAS 9.4可用至2023年10月 sas sid 2022 最新 SAS更新SID](https://download.csdn.net/download/nchkchy/87424280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SAS 9.4 SID续订更新SAS SID 2023更新-用至2023年10月sas sid 2023 最新sas更新sid](https://download.csdn.net/download/nchkchy/87424243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值