楼主: gloosace
1811 0

[程序分享] 开源sas宏代码库sasGlue [推广有奖]

  • 0关注
  • 0粉丝

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
1 点
经验
70 点
帖子
1
精华
0
在线时间
1 小时
注册时间
2018-12-18
最后登录
2018-12-20

楼主
gloosace 发表于 2018-12-18 11:18:11 来自手机 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
https://github.com/gloosace/sasGlue

开源sas宏代码库,包括各种功能常用的sas宏、数据结构等,方便sas用户编写功能更强大的sas代码,欢迎使用:)

以下是介绍,github浏览效果更好


· 什么是sasGlue?

sasGlue是一个sas宏代码库,提供各种基础性、通用性的sas宏来辅助用户进行sas编程,是一个sas宏层面的utility库

sasGlue的功能主要包括字符串处理、宏与宏变量管理、各种数据结构、数据集管理、IO控制、日志等

sasGlue的开发者包括:@gloosace @Lenny-cis @andizhu @lavafool

· 建议的阅读顺序

首次使用者建议按如下顺序阅读:本说明 -> 源代码中的Coding Details -> 源代码中您感兴趣的宏与示例

Coding Details中包括了对sasGlue常用编码习惯、内建数据结构(vars、assigns、obj、array等)的具体说明

源代码包括sasGlue.sas与test文件夹中的测试用例两部分,测试用例按宏类型分类

· 如何使用sasGlue?

sasGlue.sas文件包括所有说明与源代码,只要直接按F3编译后即可使用,也可以使用%include调用

所有的宏使用两级分类,具体内容请查看代码文件中的目录,使用文本搜索功能搜索相应的类名,即可跳转到相应章节

每个章节开头为总体性的介绍,每个宏的源代码前为该宏的具体介绍

每个宏都包含对应的测试用例,说明中的 @test_xxxx 表示对应的测试用例文件名,可以在test文件下查找

测试用例同时也是功能示例,对于较复杂的宏可先查看测试用例了解使用方法

· sasGlue对OS与SAS环境有哪些要求?

sasGlue在windows环境开发,如用于其他操作系统请注意重新测试

sasGlue绝大部分功能适应所有sas9.2以上版本,个别非核心功能可能有更高版本要求(如:sha256要求sas9.4)

sasGlue所有代码文件基于UTF-8编码

· 使用Glue的注意事项

请注意不要与您自己编写的宏发生宏名称冲突

请注意不要误操作sasGlue所使用的全局宏变量(以GLUE_开头)

请注意运行环境(如:options设置)可能与您的使用习惯不同

sasGlue中的一些宏会使用sas临时工作区(WORK)与当前文件夹(执行代码所在的文件夹)

在使用sasGlue中的日志功能前,请注意先完成相关SAS Logging Facility的配置,配置方法可参加测试用例

· 宏目录

Format Macros 格式宏

Format Definition

各种format/informat定义,所有format将被保存在WORK中并自动引用
Format Basic

format管理宏(不包括format的使用),如:format的检查、载入、复制、卸载、删除等
Format Ds

使用format进行数据操作的宏,如:对ds进行批量格式转换、改变ds附加的显示format等
FCMP Macros 自定义数据集函数宏

Fcmp Definition

各类数据步函数定义,所有fcmp func将被保存在WORK中并自动引用
Fcmp Macros

fcmp的管理宏,主要包括fcmp lib的导入、注销等
DEV Macros 开发工具宏

Log Macros

日志宏,基于SAS Logging Facility封装的日志
Timer Macros

计时器类宏
Debug Macros

测试宏,如:断言、临时变量的检查等
Options Macros

sas option管理宏,包括option的增加、删除等
Basic 基础宏

Math Macros

各类基本算术处理宏
Time Macros

日期与时间宏;
Random Macros

随机数、随机字符串生成宏;
String Macros 字符串宏

String Format

字符串格式识别,判定字符串是否具有某种格式,例如:数字、引号内、括号内等
String Conversion

字符串转换,对原字符串进行简单的加工修饰,例如:引用、去除空格、加引号等
String Operation

字符串一般操作宏,例如:搜索、拆入、替换等
String Hash

hash相关操作,例如md5,sha256等
String Binary

二进制字符串操作宏,例如:二进制AND、OR、XOR、转换为base32格式等
VARS Macros VARS宏

Vars Conversion

将vars转换为SAS中的不同场景适用的格式,例如:a b c转换为sql中的(a,b,c)
Vars Position

基于位置的操作,例如:var计数、提取指定位置var等
Vars Matching

基于内容的操作,例如:查询某个var是否存在、正则表达式识别等
Vars Set

将vars视为集合的操作,例如:集合add、sub、or等
Vars Batch Operation

重复对vars所有元素进行相同处理,例如:添加前后缀、padding等
Assigns macros

assigns类字符串处理宏,提供基于VARS实现的类似map的数据结构
I/O Macros I/O宏

File IO macros

文件操作宏,例如:包括路径检查、文件夹创建、文件检查、拷贝,xlsx/csv/ds格式相互转换等

Ods Macros

ODS控制与输出宏,提供分级分页的HTML/PDF输出,以及ODS输出参数的管理
MACRO 自定义宏与宏变量

Macro App Macros

自定义宏管理与编写辅助,例如:获取caller名称、参数检查工具等
Macro Variable Macros

宏变量管理宏,例如:宏变量存在性检查、获取指定scope的宏变量值、批量删除全局宏变量等
Plan Macros

macro批处理宏,根据数据集中记录的参数,批量调用宏进行计算,并将结果回写数据集
DATASET 数据集宏

Ds Basic Macros

ds基础操作宏,例如:获取lib名称、检查ds是否相同等、获取观测数量等
Ds Lib Macros

ds lib操作宏,例如:lib的载入、拷贝、注销等
Ds Operation Macros

以ds整体为操作对象的宏,例如:拷贝、移动、删除等
Ds Index Macros

ds索引操作宏,例如:索引创建、删除等
Ds Var Operation Macros

以ds中的变量为操作对象的宏,例如:获取变量名、获取变量类型、变量改名、设置变量长度等
Ds Obs Macros

以ds中多个观测为操作对象的宏,例如:obs去重、key计数等
Ds Cell Macros

以ds中的单元(即一个观测的一个变量值)为操作对象的宏,例如:cell写入与读取
Multi Ds Macros

以多个ds为操作对象的宏,例如:合并/merge、过滤/filter、连接/join等
OBJECT 对象宏

Obj Basic Macros

obj基本操作宏,包括obj的创建、复制、删除、成员增减等
Obj Member Macros

obj成员批量处理宏,对obj所有成员批量进行某一种操作,例如:清空、大写等
Obj Ds Macros

obj与数据集观测间互操作宏,例如:写入、读出
Obj Array Macros

以obj形式为基础实现的数组,例如:数组的创建、pop、push等
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 1 人评分信用等级 收起 理由
eijuhz + 1 精彩帖子

总评分: 信用等级 + 1   查看全部评分

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 22:27