SAS:提取数据集观测,宏参数

方法一:

DATA _NULL_;

SET A NOBS=NOBS;

CALL SYMPUTX(‘NUM1‘,NOBS);

STOP;

RUN;

&NUM1.就是观测数,局部宏参数,供调用

方法二:

PROC SQL;

SELECT COUNT(*) INTO: NUM2 FROM A;

QUIT;

&NUM2.:就是观测数,局部宏参数,供调用

一般情况下,两种方法都可以,但是当数据集的观测为零时,方法一就行不通了;

时间: 2024-11-10 02:37:01

SAS:提取数据集观测,宏参数的相关文章

SAS 操作数据集的观测

SAS  操作数据集的观测 1. SAS表达式 表达式是操作数和操作符的序列,该序列会形成一组可执行并产生 结果值的指令.其中,操作数可以是常量.变量或表达式:操作符是表 示比较.数学计算或逻辑运算的符号,也可以是SAS函数或者括号组. 在SAS程序语句中,创建变量.赋值.求新值.转换变量和执行条件处理都会用到表达式. 1.操作数 操作数可以是常量.变量或表达式.SAS常量是表示一个固定值的 数字或字符串.常量可用作许多SAS语句的表达式,包括变量赋值语句 和IF-THEN语句,还可作为特定选项

【C语言面试题】第2题:宏参数的连接

#include <stdio.h> #define STR(s)    #s #define CONS(a,b)    (int)(a##e##b) int main() {     printf(STR(vck));     printf("\n");     //vck     //2000     printf("%d\n",CONS(2,3);          return 0 } 宏定义中,#把宏参数变为一个字符串,用##把两个宏参数贴合在

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

(1)拍扁数组 这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8].维数不定,应该要用递归: 答案: function flatten(arr){ var arrLength=arr.length; for(var i=0;i<arrLength;i++){ if(arr[i].constructor==Array){ arr.splice(i,1,flatten(arr[

glibc 中确定宏参数个数的宏__SYSCALL_NARGS 及 可变参数宏__VA_ARGS__

读 glibc 中 关于 socket 系统调用实现的部分,然后看到了这里,写在这里做份一份笔记. #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n #define __SYSCALL_NARGS(...) \ __SYSCALL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,) #define __SYSCALL_CONCAT_X(a,b) a##b #define __SYSCALL_CONCAT(a,b) __

高分辨率图像建筑物提取数据集制作

目录结构 /dataset/ xxxx.tif # 原始图像 image-3000 0.tif # 切割后的tif 1.tif ........ 0.json # 生成的json文件也放在该文件夹下 1.json ....... 0_json # 调用labelme_json_to_dataset 0.json 生成的0_json文件夹 img.png # 原始图片的png格式 info.yaml label.png # 标签图片 label_names.txt label_viz.png 1_

一点一点学写Makefile(4) - 编译时指定宏参数

我们在项目中有时为了方便会自定义一些与项目无关的功能,例如打印输出一些提示信息.将关键协议生成文件等,但是如果每次都通过修改代码的方法来实现,测试部门就会认为你改的这些代码可能会带来其他问题.对于这种情况,我一般会通过开关宏来控制,同时编译多个文件,在测试时使用一个正常发布的版本,如果发现问题并且无法判断问题的来源时,可以使用这个由打印输出的版本,找到问题并解决后在切换成为原来的版本. 先上一端测试代码,非常简单: [cpp] view plain copy #include <iostream

SAS 对数据集所有字段rename

    %macro rnm(data=,out=); proc contents data=&data out=t1(keep=varnum name) noprint; run; proc sql noprint; select name into :classname separated by' ' from t1 order by varnum; quit; %put &classname; data &out; set &data; %let i=1; %do %

正则表达式提取url中的参数,返回json字符串

var urlstr = "www.baidu.com?a=1&b=xx&c"; var s = urlstr.split("?"); var argstr=""; console.log(s); if(s.length>1){ argstr = s[1]; } var parttern = /([a-z]+)(=)?([a-z0-9]*)/gi; var matches = parttern.exec(argstr); v

【SAS BASE】处理数据集

本节内容包括:SET语句.MERGE语句.UPDATA语句.OUTPUT语句.TRANSPOSE语句和data-set选项及SAS Automatic Variables 一.SET语句(堆叠功能) 用SET语句修改数据集 DATA Friday; SET Sales;/SET 'C:\MySASLIB\trains.dat'; IF DAY='F'; Total=Propcorn+peanuts;/*建立新的变量*/ RUN; 用SET语句堆叠(stack)数据 1 DATA BOTH; 2