首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >创建SAS Format的几种方法

创建SAS Format的几种方法

作者头像
专业余码农
修改于 2020-07-15 15:15:10
修改于 2020-07-15 15:15:10
1.8K0
举报
文章被收录于专栏:老Z的博客老Z的博客

不管是做AD还是TFL,我们经常会碰到要创建Format。当Format中条目不多时我们可以直接用PROC FORMAT来创建,但是当条目很多时,这种方法就不方便了。下面详细介绍其他几种方法:

设有数据集如下,假设要创建START为AVISITN,LABEL为AVISIT的Format:

  • 通过CALL EXECUTE创建。
代码语言:txt
AI代码解释
复制
/*方法1: CALL EXECUTE*/ 
data _null_;     
    set demo end=eof;     
    if _n_=1 then call execute('proc format; value vs1t');     
    call execute(cats(AVISITN)||' = '||quote(cats(AVISIT)));     
    if eof then call execute('; run;'); 
run;  
  • 通过宏变量创建
代码语言:txt
AI代码解释
复制
/*方法2: macro variable*/ 
proc sql noprint;     
    select catx(' = ', cats(AVISITN), quote(cats(AVISIT))) into :fmtlst separated by ' '           from demo         
        order by AVISITN; 
quit;  

proc format;     
    value vs2t &fmtlst; 
run;
  • 通过CNTLIN=选项创建。
代码语言:txt
AI代码解释
复制
/*方法3: CNTLIN= option*/ 
proc sql;     
    create table fmt as         
        select distinct 'vs3t' as FMTNAME , AVISITN as START , cats(AVISIT) as label                   from demo         
            order by AVISITN;
quit;  

proc format library=work cntlin=fmt; 
run;
代码语言:txt
AI代码解释
复制
/*方法4: FILENAME*/ 
proc sql;     
    create table fmt as         
        select distinct AVISITN, quote(cats(AVISIT)) as AVISIT 
        from demo 
        order by AVISITN;
quit;  

/*将CODE输出到一个临时文件*/ 
filename code temp; 
data _null_;     
    file code;     
    set fmt;     
    if _n_=1 then put +4 'value vs4t';     
    put +14 AVISITN ' = ' AVISIT; 
run;  

proc format;
    %inc code / source2;
    ;
run;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Macro-Output Query(Edit Check Macro)
愉快的周末又要结束了,繁忙的周一也即将开始!小编今天给大家Share的一个Macro是关于临床数据清理中的一个实用性的Macro,SAS Edit Check Output Query. -- Setup
Setup
2019/10/21
1.1K0
Macro-Output Query(Edit Check Macro)
SAS-RTF的合并【完善篇】
这一篇推文是针对上一篇推文,进行SAS程序与功能上的完善!点击此处将可跳转至上一篇推文:SAS-如何简单快捷的实现RTF合并。在上一篇推文推送后,有不少人都对RTF的合并感兴趣,并找到了小编。于是小编决定将RTF的合并完善一下,写成宏程序,以便有需要的朋友可以直接使用。
Setup
2019/10/20
4.3K1
SAS-时药曲线的绘制(完)
本文是上一篇的推文的续篇,本篇推文将主要介绍GTL绘制受试者维度的时药曲线(画拼图),并分享小编刚出炉的,还热腾腾的自动画图的宏程序。点击
Setup
2019/10/20
3.6K0
.sas7bdat文件与.xpt文件批量转换
当我们拿到的原始数据为.xpt格式时,就需要批量转换成.sas7bdat文件以便后续处理,而当我们要准备SDTM Package时,我们又要将.sas7bdat文件批量转换成.xpt文件。
专业余码农
2020/07/16
4.1K1
一道小学生的趣味数学题
据说上图(来源于网络)中这道小学生趣味题只要聪明一点的小学生都可以解出来,成年人估计只要一分钟。我也试着用SAS来解答, 思路如下:首先获取所有的数字出现的位置,然后与完整的位置(1234)比较,去重存异;根据题中的提示每次输入有两位数字正常且位置都不对,故排除只出现一次或者出现4次的数字;最后将数字的多个位置和已被占的单一位置进行比较,去重存异。重复这一操作直到得到每个数字的正确位置。完整的程序如下:
专业余码农
2020/07/16
7570
一道小学生的趣味数学题
SAS-如何简单快捷的实现RTF合并
今天小编打算分享一段关于RTF合并的小程序...在平时出Tabel的过程中,很多人都是一个表一个表的出,最后要面临一个RTF合并的过程,很多公司都有自己的方式进行合并,小编虽然没见过他们的代码,但是以小编浅薄的经验来看,原理大概也是大同小异。这篇推文小编要介绍的是小编用SAS实现RTF合并的原理以及过程。
Setup
2019/10/20
3.4K0
SAS-一个小程序获取某网ATC编码库~
关于获取网页信息,小编其实在很早就有写到SAS-爬取帖子下的邮箱,给他们发一封邮件...嗯,其实也就是通过获取网页代码,从网页代码中提取出需要信息~还是看一张截图(谷歌浏览器按F12即可查看也面代码)
Setup
2019/10/21
1.6K0
SAS-一个小程序获取某网ATC编码库~
SAS-新规试行下诞生的程序
昨日,《药物临床试验数据递交指导原则》(试行)版正式公布了,在小编阅读后,于是本文因时而生了。
Setup
2020/07/24
2.3K0
SAS-新规试行下诞生的程序
SAS-如何实现多选值FORMAT的添加
在处理数据时,有时候会遇见变量值为多选的情况,此时如果要给变量添加上format,就略微麻烦许多。今天小编打算分享一段针对此种情况自动生成format的程序。
Setup
2019/10/20
2.8K1
Macro-csv2sas(可控制变量Length)
%macro csv_csv2sas(path=,csvname=,colmax=%str(10000),outds=,encoding=gb2312,varr=0,labelr=1,length=500);
Setup
2019/10/21
7950
Macro-csv2sas(可控制变量Length)
SAS-生物等效性PK分析程序合集
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍近期小编整理了一下生物等效性(BE)试验中PK分析部分的常规处理程序。于是就来分享一下这部分Winnonlin上的操作以及对应的利用SAS实现的程序。
Setup
2021/04/20
7K0
SAS-生物等效性PK分析程序合集
SAS自动打开数据集及复制变量值
上个月的今天,我从南到北,从深圳奔赴帝都参加了一个制药行业软件用户组2016中国区年会(PharmaSUG China 2016)。听了两天的报告,收获不少。有幸见到SAS绘图大神Sanjay Matange,可惜当时忘记了要合影。这个名字可能大家不熟悉,但是他的博客Graphically Speaking我相信很多人有看过。在众多报告中,印象较深的是这个。作者分享了几个很有用的SAS技巧,比如自动打开所标记的数据集、自动获取某个变量的值。可惜没有分享源程序,所以我写了三个小程序,实现了自动打开数据集、执行选中程序并打开生成的数据集以及复制变量值。
专业余码农
2020/07/16
1.2K0
SAS-一个小程序实现自动插入空白行~
前几天一个朋友问我如何快速的在数据集中指定位置插入空白记录。当时我也是愣了一下,以前实现输出制作排版都是在proc report输出时进行设置的,还真没在数据集中的指定位置添加空白行(proc report通过out=也可以实现,感觉又写麻烦)。所以呀,小编就写了一个小程序,来实现数据集中指定位置添加空白行!虽然程序的功能很单一,但是同样小编认为是这也是一个很有趣的程序,所以啊,小编就给大家分享一下下~
Setup
2019/10/21
2.3K1
Macro-SAS2XPT/XPT2SAS
1.proc cport 过程步,与之对应的是XPT生产SAS数据的方式proc cimport 。
Setup
2019/10/21
3.4K0
Macro-SAS2XPT/XPT2SAS
SAS-编程中的小技巧(三)
这又是一篇SAS编程中的小技巧,这次要说的是SAS中数据字典与Macro结合起来的使用技巧,以及数据集删除、保存等技巧....
Setup
2019/10/20
2.6K0
《SAS编程和数据挖掘商业案例》学习笔记# 19
继续《SAS编程与数据挖掘商业案例》学习笔记,本文側重数据处理实践。包含:HASH对象、自己定义format、以及功能强大的正則表達式
全栈程序员站长
2022/07/05
1K0
SAS中产生笛卡尔积的几种方法
在平时写程序的时候,有时候我们在LOG中会看到类似下图的提示,而实际上笛卡尔积可能又的确是我们所要的结果。下面介绍几种产生笛卡尔积的方法。
专业余码农
2020/07/16
2.4K1
SAS中产生笛卡尔积的几种方法
SAS汉字转拼音解决方案
在数据处理的工作中,可能会碰到要把汉字转换为对应拼音的问题,如将大量的中文姓名或名称转换成对应的拼音。之前写过一个简单的SAS程序来实现此目的,其主要步骤为:首先要用到汉字拼音对照表,然后将汉字设为宏变量,解析的值为其对应的拼音,接着将处理变量中的每个汉字前插入一个宏解析符号“&”,最后用RESOLVE函数在DATA步执行时解析得到对应的拼音,代码(SAS 9.2 for Windows)如下:
专业余码农
2020/07/16
1.6K0
SAS汉字转拼音解决方案
根据变量值拆分SAS数据集
前几天看到一个群友提的一个问题,根据数据集中的某一个变量的值将一人大数据集拆分为多个小数据集(见上图第15题),实现这一目的的方法有多种,最常见的方法应该是宏循环,下面以根据变量SEX来拆分数据集SASHELP.CLASS为例介绍其他几种方法:
专业余码农
2020/07/16
3K0
根据变量值拆分SAS数据集
SAS-Sql的这些用法你都会了么?
见上图:第一部分是一个简单的查询结构,第二部分小编设置快捷键(输入Sql后)自动弹出的结构(一个左连接的基本结构),快捷键的设置见小编历史推送(点击此处自动跳转:快捷键设置)。基本结构是这样的,基本就是这样的。还是用例子个程序来介绍在SAS里面的用途。
Setup
2019/10/21
5.9K0
SAS-Sql的这些用法你都会了么?
相关推荐
Macro-Output Query(Edit Check Macro)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档