SAS编程:使用EXCEL批量处理构建Format过程步语句

SAS编程过程中,会经常遇到调用Format的情况。有些Format是SAS自带的,例如,时间相关的Format,YYMMDD10.等(SAS自带Format可以参阅官方文档:SAS Help Center: Dictionary of Formats);有些Format是通过Proc Format自行定义的,例如上篇文章介绍Picture语句(SAS编程:通过Picture语句设置变量Format)。

自行定义Format的时,Value语句也比较常用,该语句创建的格式用于输出变量值对应的字符串。这里的变量值,可以是某个范围,也可以是某些具体的离散值。常见的应用,比如,SDTM编程时,建立--TESTCD对应--TEST的Format;频数分类汇总时,用数字替代各个类别进行分析,文字内容以Format的形式进行展示。

如果手动进行设置的话,设置格式越多,过程难免繁琐。比如,我要设置LBTESTCD对应LBTEST的Format。下图里有13个LBTESTCD,以前的做法是,在Format过程步里,先复制粘贴13个"" = "",然后将具体的LBTESTCD、LBTEST的值复制到语句中,过程简单而琐碎。

LBTEST

可以发现,这系列操作、展现形式是比较固定统一的,最后的展现形式为"RBC" = "Red blood cell count"。如果能做EXCEL中批量处理好成现成的一列,直接复制到SAS中,就方便快捷很多。这在EXCEL中是比较容易实现的。

不管是EXCEL小白,还是达人,大多数EXCEL使用者应该体验过,采用公式计算出一个单元格的值,然后下拉实现整列值的计算。现在回想起来,第一次使用EXCEL的下拉单元格实现批量处理时,真是惊喜激动啊。

除了数值计算,字符拼接也可以通过这样下拉的方式实现整列的批量处理。EXCEL中的拼接字符为&;拼接内容若为具体字符值,需要添加双引号;拼接字符为单元格内容时,直接输出单元格名称(在公式编辑的状态,单击目标单元格,就会输入该单元格名称)。比如,在RBC前,输入斜杠和空格,需要在单元格中这样编辑,="/ "&A1,然后按Enter键,斜杠和空格就显示出来。

Tmp1

然后,选中编辑好的单元格,鼠标定位到单元格右下角,按住下拉,就可以实现批量添加斜杠和字符。

Tmp2

对应SAS中Format语句的构建,输入这样的公式编辑,="""&A1&"" = ""&B1&""",不就可以实现我们想要的结果了?答案是,否定的。这里有一个小问题,拼接字符需要放在双引号内,但字符本身如果含有双引号,就会对原有引号内容造成干扰。上式公式编辑的结果,显示如下:

Tmp3

造成这样的结果是因为,在双引号内,连用两个双引号会抹去双引号的语法含义,显示成一个双引号。所以,正确的公式应该是这样,=""""&A1&""""&" = "&""""&B1&"""",所有想要显示的引号,都需要放在双引号中,并且输出字符本身需要连用两个双引号。这样处理后,再下拉单元格,就实现了整列的批量处理,之后在复制到SAS语句中。

Tmp4

SAS中也有类似的操作,例如,对于定义好的转义字符escapechar,连用2次就当成一个普通的字符;对于解析宏变量的&,连用2次也是会当成一个&来使用。

总结

文章介绍了,利用EXCEL批量处理生成SAS中Format过程步语句的方法,这其中涉及到EXCEL单元格公式编辑时,对双引号的处理。通过EXCEL的批量处理,降低工作的繁琐程度。这个方法也不局限在Format的语句中,对于大量格式统一的赋值语句,也可以使用EXCEL来编辑处理代码。

感谢阅读!若有疑问,欢迎评论区交流!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容