前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAS-一个关于specification与分析数据集的小工具

SAS-一个关于specification与分析数据集的小工具

作者头像
Setup
发布2019-10-19 13:06:27
1.9K0
发布2019-10-19 13:06:27
举报

今天小编要分享一段根据Specification文件自动加工分析数据集的小程序,可以实现自动修改分析数据集变量标签、变量顺序、观测排序、变量属性、检验是否有遗漏变量及抓取其他数据集中的变量。好像功能说了一大堆,其实都是一些小功能,当然一些小功能也能很好的节省工作量,提高工作效率。

Specification

在分享程序之前呢,小编先来分享一下小编的Specification文件的结构,各公司的Specification的书写习惯可能会有一些出入,基于这种情况,就局限了今天要分享的程序参考价值大于了适用价值了。

metadata

ADSL

小编的Spec文件的结构就如上面的俩张图,做过SAS程序员的应该都会知道,我们一般是先根据SAPCRF来写Spec文件。这个文件用来解释我们分析数据集里面的变量以及变量生成的过程,并指导分析数据集SAS程序的编写。一般的Spec文件的结构其实和小编的差不多,小编这里多了俩列,一列是Flag(生成分析数据集的时候直接抓取其他数据集中的变量);另外一列就是Sortorder(控制观测排序)。下面就来看小编程序实现的过程。

程序分享

首先来看下小编设置的宏参数以及调用宏的例子(如下截图)。

嗯,宏参数就不做过的解释了,上面截图感觉已经很详细了。接下来看看具体的程序思路与实现方法。

这一步的目的是将Spec文件中的metadata与指定的sheet导入SAS中。metadata表的作用是这个表包含了每个数据集的标签(不是变量的标签)。

这一步对是否取其他数据集中的变量做处理。如果SpecFlag列填写的不为空,则自动获取其他数据集中的变量,如果Flag中填写内容的长度大于1,默认的是此处填写的where语句的条件。下面来看看执行到这一步生成的_tem_spec数据集。

上面的那个段data step目的就是生成截图中被框起来的部分,是不是很眼熟,这个Proc Sql中的语法结构,然后将其赋值宏变量,丢到Proc Sql过程步中,就实现了变量的自动抓取。基于数据的多变性,目前这里小编就设置了一种抓取(单数据集直接获取变量无加工),如果涉及到了变量从多个数据集中取值、填补等等,这个肯定是不行的。本着能少敲一个单词绝不多敲一个字母的原则,小编自认为还是很能节约时间,精简代码的。

这段程序的作用是利用proc sql定义宏变量,将一些程序语句塞进宏变量中,在后面程序中便于直接调用。都是取自导入Spec文件,以及加工而来的_tem_spec中。每一小段的作用是什么,具体可以看注释的提示。

定义完宏变量,就到了调用宏变量了,上面截图就是调用宏变量的过程。用来实现一些列注释上说的功能。好像metadata的导入没啥用呢,憋急,看下面,作用来了,给数据集加标签。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAS程序分享号号号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档