特别说明:本节【SAS Says】基础篇:SAS宏初步,用的是数说君学习《The little SAS book》时的中文笔记,我们认为这是打基础的最好选择。...排除宏错误的bug ---- 【SAS Says】基础篇:SAS宏初步 1. 宏概述 宏以前被认为是经验老道的SAS程序员使用的高级技术。但现在新手也能够了解一些。...幸运的是,宏的基本功能不是那么难理解。本章介绍的最普遍使用的SAS宏语言的特征。 宏处理器 标准SAS程序中,提交程序后,SAS就编译并立即执行。...但宏语句多了一步,在提交之后,SAS会将宏语句传送到宏处理器上,将其转变为SAS标准代码,通常叫做“变换代码”(meta-programming.)...MLOGIC|NOMLOGIC SAS会在日志里打印关于执行宏的详细信息。 MPRINT|NOMPRINT SAS在日志里打印由宏产生的标准SAS代码。
SAS宏初步 7.1 宏概述 宏以前被认为是经验老道的SAS程序员使用的高级技术。但现在新手也能够了解一些。幸运的是,宏的基本功能不是那么难理解。本章介绍的最普遍使用的SAS宏语言的特征。...宏处理器 标准SAS程序中,提交程序后,SAS就编译并立即执行。...但宏语句多了一步,在提交之后,SAS会将宏语句传送到宏处理器上,将其转变为SAS标准代码,通常叫做“变换代码”(meta-programming.)...; %IF condition%THEN%DO; SAS statements %END; 自动宏变量 每一次启动SAS,宏处理器自动创建一些宏变量,可以使用在程序中。...MLOGIC|NOMLOGIC SAS会在日志里打印关于执行宏的详细信息。 MPRINT|NOMPRINT SAS在日志里打印由宏产生的标准SAS代码。
--只不过由于SASS不是使用JS实现的, 所以不能直接在混合中使用arguments 必须通过 $args...的格式来定义可变参数, 然后通过$args来使用 注意点: 和LESS...一样可变参数必须写在形参列表的最后-->
void) { int num = 0; my_printf("I am litao, I have %d car\n", num); return 0; } Part2二、可变参数宏的设计与实现...61.什么是可变参数宏 在上面的教程中,我们学会了变参函数的定义和使用,基本套路就是使用 va_list 、 va_start 、 va_end 等宏,去解析那些可变参数列表我们找到这些参数的存储地址后...其实,C99 标准已经支持了这个特性,但是其它的编译器不太给力,对 C99 标准的支持 不是很好,只有 GNU C 支持这个功能,所以有时候我们也把这个可变参数宏看作是 GNU C 的一个语法扩展。...可变参数宏使用 C99 标准新增加的一个 VA_ARGS 预定义标识符来表示前面的变参列表,而不是像变参函数一样,使用 va_list 、va_start 、 va_end 这些宏去解析变参列表。...Part3三、利用变参函数和可变参数宏实现自己的代码模块 91.实现函数重载 前边我们定义过CONNECT2, CONNECT3的宏,如果我们要粘连的字符串数量不同,比如,2个、4个、5个……n个,我们就要编写对应的版本
SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程 1....一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) 结构化查询语言(SQL) SAS宏语言 2....宏触发:% 是一个宏语句或宏函数;&是一个宏变量引用 3. 局部宏变量:一般程序定义的为宏变量。...宏函数,是指能够通过在SAS宏中定义应用DATA步的函数,最常用的通配函数是%SYSFUNC函数。...SAS中SQL过程具有以下功能: 产生汇总数据,创建SAS数据集。 从数据字典和数据视图中检索数据。 横向合并数据集。 纵向合并数据集。 创建视图和索引。 更新、添加、删除等操作。 创建宏变量。
在SAS各种繁杂的PROC之后,还要来看看MACRO才可以嘛。又不能写函数... SAS中的MACRO:宏编写 MACRO主要是DO和%LET的各种组合,前者负责循环后者负责变量。...我们指定了一个SAS MACRO中的变量flowertype,在执行MACRO的时候他会被自动翻译成标准的SAS代码。这样执行的结果就是: 看到了吧,标题已经被替换了。...SAS MACRO的DEBUG调试 这里就是一些基本的找错技巧了: 避免最常见的语法错误:先写一般的SAS语句,然后去替换需要用到变量的部分。...SAS的报错记录:有MERROR(找不到macro)、SERROR(找不到变量)、MLOGIC(SAS将在日志中输出详细的执行情况)、MPRINT(SAS将在日志中输出翻译出来的SAS代码)、SYMBOLGEN...(SAS将在日志中输出变量当时的赋值)。
看点 问题:之前的方法的空间特征提取和时间运动补偿往往是顺序的,无法充分利用时空信息 方法:提出了一个利用可变形3D卷积(D3D)的可变形三维卷积网络(D3Dnet)来整合视频的时空信息 优点:D3D作为一个可以同时整合时间和空间的组件...,具有优越的时空建模能力和灵活的运动感知建模能力,同时,D3Dnet还实现了当时的SOTA 方法 可变形3D卷积 可变形3D卷积把3D卷积和在二维空间的可变性卷积结合在了一起,普通的C3D通过以下两个步骤实现...最后,利用D3D采样网格生成输出特征,公式如下: 可变形三维卷积网络 首先将具有7帧的视频序列馈入到C3D层以生成特征,然后将这些特征馈入到5个残差D3D(resD3D)块以实现运动感知的深层时空特征提取...消融实验 对于两阶段模型,使用n个残差块和可变形对齐模块替换resD3D块去依次执行空间特征提取和时间运动补偿。
https://blog.csdn.net/10km/article/details/80760533 如何计算可变参数__VA_ARGS__中的参数个数?
2.可变参数 大家都知道,printf函数就是通过可变参数机制来实现的。 可变参数可以这样定义和使用: (1)不带参数名 ? (2)带参数名 ?...第20行代码用 __VA_ARGS__ 来代表宏定义参数中的三个点(...),也就是可变参数。 再来说说“##”。...如果调用:debug2("hello"); 这里调用时,在format后面没有传入任何参数,那么就会编译错误,因为在宏替换之后变成了 printf("hello",),第一个参数之后多了一个逗号,因此报错...; 这样就没有问题,因为debug3中在可变参数__VA_ARGS__的前面有“##”,当编译器发现没有传入参数时,会自动把format后面的逗号去掉,所以编译OK。...3.宏定义中的#和## #的作用就是在预处理的时候,把宏参数进行“字符串化”,例如: ? ##的作用就是在预处理的时候,把两个宏参数进行“粘合”,例如: ?
SAS中的一些常见的符号。运算符是一种符号 ①比较算符 ②算术算符 ③逻辑算符 ④其它算符 运算符号 比较算符 含义 #NAME?...SAS系统引用数组等价于引用构成数组的那一组变量。...SAS宏的一些特性: 1)可以降低重复性任务的工作量,便于重复调用。...1、sas宏变量——可复用的值 一个可以广泛复用,一直保存在缓存中的变量内容。 一种在程序(这里一般是指一个宏程序)外定义,则在整个SAS任何地方都可以被调用。...(如果一个程序内部定义有宏变量变成全局变量,则需要使用%global)(这句话参考自: SAS 定义宏的三种用法) (1)%let %let a=XXX; %put &a; %put here is &
https://blog.csdn.net/10km/article/details/80769615 考虑一个可变参数宏__VA_ARGS__中奇数位代表参数类型,偶数位代表参数名,想要提取...利用上一篇博客《c/c++:计算可变参数宏 __VA_ARGS__ 的参数个数》的成果可以获取__VA_ARGS__中参数的个数。...在这个基础上添加一系列宏定义就可以实现,下面是完整代码及测试用例, gcc下测试通过: // 计算 __VA_ARGS__ 参数个数,最大支持64个参数 #define FL_ARG_COUNT(...
在本教程中,我们将探讨其功能,并探讨如何使用它来动态创建与分辨率无关的动态背景。这将是本教程的输出: ? 设置项目 首先,创建一个新的 index.html 文件,并编写如下代码: <!...API 还可以创建与分辨率无关的图像,所以你不用担心错过单一屏幕尺寸。 如果你今天选择使用 CSS Paint API,请确保你提供 polyfill,因为它仍然没有被广泛采用。
导读 本报告从三个方面介绍基于概率主题模型的高分辨率遥感图像非监督语义分割,首先介绍语义分割基本的内涵和完成语义分割所涉及到的一些方法,其次介绍一些常见的概率主题模型,最后介绍一些简单的应用。...关注文章公众号 回复"唐宏"获取PDF及视频资料 作者 ? 唐宏 北京师范大学教授 北京市重点实验室副主任 1.语义分割 ---- 什么是语义分割?...一般全色影像空间分辨率更高,多光谱影像光谱分辨率更高,我们用更多的光谱信息进行分类或者聚类,这样既可以利用全色影像高空间分辨率空间信息,又可以利用多光谱的光谱信息。
如果这样宏程序需要写的很完善,那么就是一个非常大型嵌套宏。由于最新的指导原则要求不能调用外部宏和嵌套宏,为了提高工作效率、减少错误率等,于是本文诞生了。...原理 以前是直接调用宏程序生成结果,现在可以通过调用宏程序直接生成不含外部宏、大型宏及嵌套宏的SAS代码,通过运行SAS代码再来生成结果。...当然,你也可能没有用宏去做表,都是用分析过程步,对于这种情况,小编建议你可以借鉴本文编写适用于自己的宏程序,避免重复工作。(程序下载链接在文末) 宏参数 下面来看看小编的宏参数。...: http://www.sas-pharma.com/sas-pharma/pgmModel/ 点击文章底部“在看”后,再点击“阅读原文”即可下载本文所有代码与数据,或前往https://www.sas-pharma.com...本文宏使用的环境是SAS9.4(简体中文),如果其他环境下需要使用,也可邮箱/微信联系我。
Macro是SAS编程不可缺少的一部分,Macro的好处很多(此处省略若干字),当然这也是接着前面的基础篇写的~这也是一个Macro中的基础篇。...%macro setups; %global PATH PGMLIB PROJECT; %LET CURRENTROOT= %upcase(%sysget(sas_execfilepath)); %LET...PGMLIB=%upcase(%sysfunc(substr(&CURRENTROOT.,1,%index(%sysget(sas_execfilepath),\%sysget(sas_execfilename...,strip(fname)); call symput('nobs',strip(Max(I))); run; %put NOTE:该路径下一共有&nobs.个sas程序文件,名称如下:; %do i...=1 %to &nobs.; %put NOTE:第&i.条观测的值:&&pgmn&i.; %end; %mend; %gtpgm; 我这里是将某路径下所有的sas程序名称赋值给宏变量...
这还是继续前面的基础说,今天来说一说宏中数值运算、几个常见函数等... 宏数值运算 大家都知道SAS数据集中的变量是分数值型、字符型的。那么SAS的宏变量是否分数值型变量和字符型变量呢?...*&mvar2.); %eval进行运算的宏变量有小数点是会有Error的...那么来看看日志。 ? %sysfunc 前几天小编推送了一大堆SAS里面的基础函数,那么那些函数在宏是否可以用呢?...宏中的函数 那么宏中的函数必须用%sysfunc()包裹起来么,不是的。SAS还将几个常用的函数直接变成了宏函数,都有那几个常用的函数呢?...不过为了引出另外的一个关键词,还是浅谈一下...毕竟,一般公司在笔试应届毕业生SAS programmer、或者应届毕业生转正考试的时候经常会遇到宏变量解析的笔试题...那么久来看看几个简单的例子 %let...%superq() 解析括号内作为一个整体的宏变量, 这个关键词可以起到解析宏变量的作用,当然此处还没有完全的体现出%superq在SAS中的真正的应用.... data _null_; call
那么问题来了,小编为啥要获取上面那个路径(SAS软件安装的路径)下的所有SAS程序呢,而且在这个路径下竟然发现了数千个SAS程序。下面小编就来给大家简单分享一下SAS中自带的Macro程序。...SAS自带Macro 在日常查询SASHELP时,有时会发现SASHELP的例子中直接调用宏。但未见定义宏,这些宏都能在安装路径下找到。再或者使用一些函数时未见字体变高亮。 ?...SAS中这样的宏程序还有很多,宏代码还是有很多学习和借鉴的地方。好了,今天就这么多啦...
1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。...4.点确定就好了 小编还是忍不住要来点(zhui)评(shu)一下宏功能机的优劣之处:先说优处,优处:当你写了几十上百个Macro的时候,每个macro的参数你都背的下来么,即使背下来了,每次你都能不敲错代码么...宏功能键,不仅仅只适用于Macro上,你也可以把长用的代码块,和知识点设置成快捷键,当你输入mean的时候,弹出proc means的结构和各个参数的含义。。好吧~好处真的很多。让小白变大神。...2 打开SAS自动运行Macro 设置打开SAS自动调用你写好的Macro,或者打开SAS自动执行你想执行的代码。...01 看效果 1.预先写好一段代码(sas程序名字:autoexec.sas,并将程序放在你SAS安装路径下,小编此处安装路径B:\SAS\SASFoundation\9.2(32-bit)) ?
今天给大家Share一下SAS Macro获取文件路径的技巧! 获取路径有哪些用途呢: 如果路径都用宏变量表示,当文件夹的物理路径发生变化时, 都还是可以直接运行程序!不需要修改成程序~ 上代码!...\macro\; %put NOTE:PGMLIB =&PGMLIB.; %put NOTE:Path =&Path.; %inc "&PGMLIB.\*.sas"; %mend; %getpath...为SAS程序所在路径。...(如上代码可以直接复用) SAS 创建文件夹:如下代码: 这样做的的好处是啥呢,每次运行数据或者数据集想实现自动存下来,这个时候就可以用SAS自动创建文件夹的方式来存储。..._varstemp12 ; quit; data RAWDATA2; set RAWDATA1; &varlist1.; run; 如上: 讲语句都封装在宏变量里面,直接调用宏变量,就可以执行了
----Setup~ 1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的宏功能键(我称“快捷键”)。...输入回车键 02 如何设置 1.先复制代码 2.工具--添加缩写 3.设置缩写(缩写:设置你需要的快捷方式,代码块放入缩写的插入文本中) 4.点确定就好了 小编还是忍不住要来点(zhui)评(shu)一下宏功能机的优劣之处...宏功能键,不仅仅只适用于Macro上,你也可以把长用的代码块,和知识点设置成快捷键,当你输入mean的时候,弹出proc means的结构和各个参数的含义。。好吧~好处真的很多。让小白变大神。...2 打开SAS自动运行Macro 设置打开SAS自动调用你写好的Macro,或者打开SAS自动执行你想执行的代码。...01 看效果 1.预先写好一段代码(sas程序名字:autoexec.sas,并将程序放在你SAS安装路径下,小编此处安装路径B:\SAS\SASFoundation\9.2(32-bit)) 2.做好上述一步聚
领取专属 10元无门槛券
手把手带您无忧上云