美文网首页SAS编程
proc format cntlin=XXX

proc format cntlin=XXX

作者: SASPRO的打工人生活 | 来源:发表于2021-11-18 22:44 被阅读0次

扛不住了,我要睡觉!但是又想把这篇文章写完再睡。快点快点!!!

今天了解到一个新的东西,proc format cntlin=XXX,XXX就是一个数据集,我们可以叫它parent数据集。这个数据集会被用来format其他数据集,有点抽象?SAS官网都没讲清楚,看我的例子说不定你就懂了。

下面来创建parent数据集。

ctrl才是parent数据集,scale只是借用它的数据。

scale数据集

ctrl数据集(parent数据集)

创建end=last只是等下我们要用到SASHELP.classfit数据集,里面年龄有等于16,这时候就会触发这个format,hlo="0"没啥特别意义,就是用来区分值不在上面的范围的时候输出什么。

start和end大家可以看作一个范围,因为SASHELP.classfit里面年龄就11,12,13,14,15,16,不太好设置大范围,所以我就start=end。

注意这个“fmtname”很重要,它相当于触发器,虽然我不知道是不是一定要起这个名字,也没时间验证了。

classfit数据集:

之后我们输出报表,这时候不用proc format cntlin,PercentageFormat12应该是没用的,所以输出就是输出原数据。

看到数据没变。

接着我们取消注释,要启用format了。

出来了,看到对应的年龄都变成了百分比,而且16岁的输出了error。

能体会到怎么用了吗?没体会到我也不跟你详细解释了。

下面再看一个例子:截图顺序可以理解成程序顺序。

这个数据集长这样,也有start和label,我不确定这个是不是固定的,有时间再试。

注意这个order,在下面要输出的数据集中,即adaesummary1

之后在输出图的时候,这个order被format成具体的AEDECOD;

adaesummary1数据集中的order被format成格式数据集中的start,然后这个start又对应具体的label,最后输出长这样,order就是红框里的东西

这就是proc format cntlin的用法!也可以去SAS官网搜proc format cntlin

大爷,脑袋懵死掉,睡觉!

相关文章

网友评论

    本文标题:proc format cntlin=XXX

    本文链接:https://www.haomeiwen.com/subject/vbnjtrtx.html