SAS 汇总SQL查询宏变量的值(Sum Values Stored in Macro Variables )
来源:互联网 发布:网络电影《罪》在哪看 编辑:程序博客网 时间:2024/05/16 09:52
【目的】
(1)通过SQL将要查询的多个结果保存到多个宏变量里面;
(2)通过MACRO将多个宏变量的值汇总到一个变量里面用于进一步分析。
【程序】
*创建一个样例数据库temp;data temp;do i=1 to 10;output;end;run;%macro matrix();proc sql ;select i into :x1 - :x10 from temp;*将i的值传递给变量x1-x10.以下的程序实现如何在宏中汇总x1-x10; *%put &x1;quit;%let sm=0;%do i=1 %to 10;%let sm=&sm+&&x&i;*这里的sm是一串字符串相当于0+1+2+3+4...+10; %end;%let result=%eval(&sm);*%eval执行上面那串字符串的值,并赋给result变量。这个也就是SAS MACRO的基本逻辑,先翻译成可计算的语句,再执行;%put &result;%mend;%matrix();
还有两种办法实现,一种是使用sql create table,然后insert记录,再用proc mean统计,效率太低;另一种是使用数组,将x1-x10的值赋给数组变量,再求和。好像都很麻烦,我居然没有发现数组行求和或者列求和的函数;从这个角度发现还是R 的向量运算的效率比较高。
这个问题在goolge baidu上面检索了一整天,看了一堆的英文资料,居然没有发现很好的答案,有一篇资料是说用%sysfunc(sum())的方法,但没有人提出最终解决方案。于是整理提交我的方法方便其他同志查询。
思考:如果要考虑计算平均数;如果考虑到缺失值;是否可以考虑用户自定义函数(SAS提供的新功能)
0 0
- SAS 汇总SQL查询宏变量的值(Sum Values Stored in Macro Variables )
- 宏的用法(macro in C)
- SAS Macro IN 操作: MINOPERATOR System Option
- SAS Macro
- Macro in LISP (LISP中宏的要义)
- SAS IT技术(Stored Process )
- Java 中字段和变量的的区别(Fields vs Variables in Java)
- ORDER, SUM and Stored Procedure in MySQL
- nginx built-in variables (nginx 内置的变量)
- Built-in shader variables //内置的着色器变量
- Built-in shader variables 内置的着色器变量
- RobotFramework内置变量:Built-in Variables(转载)
- MySQL Stored Procedure Variables
- ORA-06502 assigning values from SQL to PL/SQL variables
- 变量(variables)
- 5. 变量(Variables)
- SAS Macro STPBEGIN
- SAS Macro - Check Error
- 却行却珍惜
- C++primer plus第六版课后编程题答案 6.9
- python模块及包的导入
- Session与进程组
- C++学习笔记 1
- SAS 汇总SQL查询宏变量的值(Sum Values Stored in Macro Variables )
- .net301跳转出现eurl.axd
- Stanford Parser 使用方法
- 李祎进
- Nginx 做负载均衡的几种轮询策略
- Android截屏源码分析
- winform下word文件与byte[]互转
- Oracle中的双引号与单引号
- HDU 4000 Fruit Ninja && HLG 1625 ikki的数字 (树状数组)