首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在宏中将SAS数据集作为参数传递?

在宏中将SAS数据集作为参数传递的方法是使用宏变量和宏函数来实现。下面是一个示例代码:

代码语言:txt
复制
%macro pass_dataset(dataset);
   /* 定义宏变量 */
   %let dsid = %sysfunc(open(&dataset));
   %let numobs = %sysfunc(attrn(&dsid, nobs));

   /* 执行一些操作 */
   /* 例如,计算数据集的观测数量 */
   %put 数据集 &dataset 中的观测数量为 &numobs;

   /* 关闭数据集 */
   %let rc = %sysfunc(close(&dsid));
%mend;

/* 调用宏并传递数据集作为参数 */
%pass_dataset(sashelp.class)

在上述示例中,%macro%mend 之间的代码定义了一个名为 pass_dataset 的宏。宏接受一个参数 dataset,该参数表示要传递的数据集。

在宏的主体中,使用 %let 语句将数据集打开并将其句柄保存在宏变量 dsid 中。然后,使用 %sysfunc 宏函数调用 attrn 函数来获取数据集的观测数量,并将结果保存在宏变量 numobs 中。

接下来,可以执行一些操作,例如使用 %put 语句将数据集的观测数量打印到日志中。

最后,使用 %let 语句和 %sysfunc 宏函数调用 close 函数关闭数据集。

要调用宏并传递数据集作为参数,可以使用 %pass_dataset 语句,并在括号中指定要传递的数据集名称(例如 sashelp.class)。

请注意,这只是一个示例代码,您可以根据实际需求进行修改和扩展。关于SAS的更多信息和相关产品,您可以参考腾讯云的SAS云计算服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • SAS-免费的描述性统计程序自动化创建

    如题,今天小编要分享的内容是如何自动化创建描述性统计分析的SAS程序。关于描述性统计分析相关内容一般可编写一个宏程序,通过填写变量与相应的参数来快速生成分析表格的结果。...原理 以前是直接调用宏程序生成结果,现在可以通过调用宏程序直接生成不含外部、大型及嵌套SAS代码,通过运行SAS代码再来生成结果。...当然,你也可能没有用去做表,都是用分析过程步,对于这种情况,小编建议你可以借鉴本文编写适用于自己的宏程序,避免重复工作。(程序下载链接在文末) 参数 下面来看看小编的参数。...programname : 生成程序路径+名称 tablename : 表格名称 inds : 数据名称...group : 组别 group|试验组\对照组 minds : 主数据 可填筛选条件(总人群数据(数据|筛选该数据观测)

    1.8K21

    SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS语言、SQL过程

    SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS语言、SQL过程 1....一个SAS程序可能包含一个或几个语言成分: DATA步或PROC步 全程语句 SAS组件语言(SCL) 结构化查询语言(SQL) SAS语言 2....参数,是一种特殊的变量,是定义在MACRO语句内的变量。 创建参数:一安按值创建二按址创建 7....函数,是指能够通过在SAS中定义应用DATA步的函数,最常用的通配函数是%SYSFUNC函数。...SAS中SQL过程具有以下功能: 产生汇总数据,创建SAS数据。 从数据字典和数据视图中检索数据。 横向合并数据。 纵向合并数据。 创建视图和索引。 更新、添加、删除等操作。 创建变量。

    2.1K80

    SAS-编程中的小技巧

    1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的功能键(我称“快捷键”)。...4.点确定就好了 小编还是忍不住要来点(zhui)评(shu)一下功能机的优劣之处:先说优处,优处:当你写了几十上百个Macro的时候,每个macro的参数你都背的下来么,即使背下来了,每次你都能不敲错代码么...功能键,不仅仅只适用于Macro上,你也可以把长用的代码块,和知识点设置成快捷键,当你输入mean的时候,弹出proc means的结构和各个参数的含义。。好吧~好处真的很多。让小白变大神。...3 处理大数据技巧(改work路径) 当你C在处理大数据的时候如何避免内存不足导致程序被迫终止,小编最近有些郁闷,经常写好了程序,却往往无用武之地,百万记录,一个sort都执行不了,千列百行的数据proc...小编也在研究如何处理大数据各位看客有类似经验,请留言赐教啊(万谢!),最近听说可以改work的逻辑库的路径。

    1.5K30

    Macro-Ods Excel Output

    通过这张截图,就可以看出小编写的Macro是怎么使用的,参数有哪些,各个参数是干嘛用的,以及创建人等等一些描述性的东西,很容易让人看懂这个是功能,和版本。...Macro的参数,一般在写程序前会大致设计几个,然后在写的过程中不断完善,或者觉得没有必要可以删减,也可以设置参数的默认值。...这个,我就给几个参数设计了默认值(flag,contents_index) ?...Proc report过程步: 为什么%if判断一下数据是否有观测,如果用过report的同行,应该会知道如果report输出的数据是空的,那么会是一片空白的存在,不太美观和好看。...这个截图里面的proc sql 是利用SAS数据字典获取Table(你要输出的数据集中的观测数),另外也是定义ods 的输出路径和一些option选项 第4/N部分 ?

    2K30

    SAS Says】基础篇:SAS软件入门(上)

    SAS的做统计分析最权威可靠、处理海量数据非常快,它的各种模块Base模块提供了丰富的数据管理功能(还支持SQL语言对数据进行操作!)...1.2 SAS数据 在你进行分析、撰写报告、对你的数据进行任何处理之前,SAS必须能够处理你的数据,你的数据必须是一种叫SAS数据的特殊形式。...一个典型的SAS程序,由数据步创建SAS数据开始,再由过程步分析数据。这里有一个例子:数据中将米转化成千米,过程步中输出结果 ?...Run告诉SAS去执行所有之前的程序行,上图的那个程序,当proc出现时,代表data过程结束。 典型的程序是以DATA语句开头,输入或修改数据,然后将数据传递给PROC语句。...上图显示了如何在windows视窗中提交增强型编辑窗口的程序。

    3.7K80

    SAS-编程中的小技巧

    ----Setup~ 1 快捷键(功能键的使用) 今小编这里说的快捷键,并不是通俗意义上的那种CTRl+A、CTRL+C的这种快捷键,而是SAS编程里面的功能键(我称“快捷键”)。...:先说优处,优处:当你写了几十上百个Macro的时候,每个macro的参数你都背的下来么,即使背下来了,每次你都能不敲错代码么,即使不敲错代码,你每次都能花2秒把你的Macro的基本结构都敲出来么,即使你能...功能键,不仅仅只适用于Macro上,你也可以把长用的代码块,和知识点设置成快捷键,当你输入mean的时候,弹出proc means的结构和各个参数的含义。。好吧~好处真的很多。让小白变大神。...将会自动执行程序 3 处理大数据技巧(改work路径) 当你C在处理大数据的时候如何避免内存不足导致程序被迫终止,小编最近有些郁闷,经常写好了程序,却往往无用武之地,百万记录,一个sort都执行不了,千列百行的数据...小编也在研究如何处理大数据各位看客有类似经验,请留言赐教啊(万谢!),最近听说可以改work的逻辑库的路径。

    1.7K80

    SAS Says】基础篇:7. SAS初步

    本节目录: 7.1 概述 7.2 用变量提交文本 7.3 用创建一个模块化的代码 7.4 给增加参数 7.5 使用条件逻辑写 7.6 用call symput编写数据驱动程序 7.7 排除错误的...变量 SAS宏代码包括两个基本部分:宏命令和变量。变量通常加一个“&”作为前缀,而宏命令通常加一个“%”作为前缀。 局部VS全局 变量有局部变量和全局变量。...具体来说,将作为文件储存在某路径中,或作为分区数据集中的一员。使用MAUTOSOURCE和SASAUTOS=系统选项告诉SAS在哪里查找。之后,即使没有出现在程序中,也可以启动它了。...7.4 给增加参数 参数就是的变量,给增加参数,在%MACRO语句中的括号内列出变量的名字。...下面的代码定义了%SELECT,并启动两次。这个排序并打印数据FlowerSales,使用参数创造了两位命为&CUSTOMER和&SORTVAR的变量: ? ? ? 结果为: ?

    3.1K60

    SAS Says】基础篇:SAS初步

    用call symput编写数据驱动程序 7. 排除错误的bug ---- 【SAS Says】基础篇:SAS初步 1. 概述 以前被认为是经验老道的SAS程序员使用的高级技术。...变量 SAS宏代码包括两个基本部分:宏命令和变量。变量通常加一个“&”作为前缀,而宏命令通常加一个“%”作为前缀。 局部VS全局 变量有局部变量和全局变量。...具体来说,将作为文件储存在某路径中,或作为分区数据集中的一员。使用MAUTOSOURCE和SASAUTOS=系统选项告诉SAS在哪里查找。之后,即使没有出现在程序中,也可以启动它了。 4....给增加参数 参数就是的变量,给增加参数,在%MACRO语句中的括号内列出变量的名字。...下面的代码定义了%SELECT,并启动两次。这个排序并打印数据FlowerSales,使用参数创造了两位命为&CUSTOMER和&SORTVAR的变量: ? ? ? 结果为: ? 5.

    3.1K41

    SAS-Macro 中的那些语句(三)

    %RETURN语句 写Macro的时候的,经常会输入一些参数,有时候会对输入的参数进行check避免输入的参数不合适,而继续执行程序,造成错误耽误时间等...因此在中常自动检测参数是否合适,不合适就跳出当前的执行.../*比如:对输入的数据进行检测,如果该数据不存在则退出当前执行*/ %macro test(inds); %if %sysfunc(exist(%superq(inds))) eq 0 %then...%do; %put NOTE:你输出数据(%superq(inds))不存在...请核查!...; %return; %end; %put NOTE:你输出数据(%superq(inds))不存在,该继续执行...; %mend; %test(a); %test(SASHELP.CLASS);...(先判断在执行) 下面来看一个例子,也是写中比较常见的一种定义参数的方式,通过一个参数....

    3.1K32

    SAS-Macro 中的那些语句(四)

    这还是继续前面的基础说,今天来说一说中数值运算、几个常见函数等... 数值运算 大家都知道SAS数据集中的变量是分数值型、字符型的。那么SAS变量是否分数值型变量和字符型变量呢?...中有一些特殊字符,:&,%...等,这个能干嘛呢?...%superq() 解析括号内作为一个整体的变量, 这个关键词可以起到解析变量的作用,当然此处还没有完全的体现出%superq在SAS中的真正的应用.... data _null_; call...; %return; %end; %put NOTE:你输出数据(%superq(inds))不存在,该继续执行...; %mend; %test(a); %test(SASHELP.CLASS...为啥第一条横向的那个地方没有解析出SASHELP.CLASS数据,而第二条横向却解析出了数据,到底是啥? 我也不太清楚...小编现在境界不够!

    4.1K22

    SAS-一个关于specification与分析数据的小工具

    今天小编要分享一段根据Specification文件自动加工分析数据的小程序,可以实现自动修改分析数据变量标签、变量顺序、观测排序、变量属性、检验是否有遗漏变量及抓取其他数据集中的变量。...这个文件用来解释我们分析数据里面的变量以及变量生成的过程,并指导分析数据SAS程序的编写。...程序分享 首先来看下小编设置的参数以及调用的例子(如下截图)。 ? 嗯,参数就不做过的解释了,上面截图感觉已经很详细了。接下来看看具体的程序思路与实现方法。 ?...这一步的目的是将Spec文件中的metadata与指定的sheet导入SAS中。metadata表的作用是这个表包含了每个数据的标签(不是变量的标签)。 ? 这一步对是否取其他数据集中的变量做处理。...定义完变量,就到了调用变量了,上面截图就是调用变量的过程。用来实现一些列注释上说的功能。好像metadata的导入没啥用呢,憋急,看下面,作用来了,给数据加标签。 ?

    2.1K60

    SAS- SOCPT频数表自动输出

    首先来看看小编设置的参数。 ? 参数 首先,小编是对参数group进行处理,获取组别变量,并提取组别名称,将其赋值给相应的变量。 ?...分离组别 第二步,分离变量minds,提取全部人群数据及作用在该数据上的筛选条件,利用proc freq语句计算各分组人数,并创建全局变量,将对应的值赋值给相应的变量,便于后面的计算。 ?...计算各组人数 接下来就是处理待分析的数据,从数据集中提取需要分析的观测。也就是利用参数Cond来控制。灵活运用proc sql计算合计、各组、相应的SOC/PT的例次、例数及发生率。 ?...核心计算过程 执行到这一步了,我们不妨来看看目前生成的数据集结构是什么样的。 ? 此时 目标 ? 此时不难发现,想要生成满足输出样式的数据,还需要对数据的结构进行转化。...参数 内部主要过程 ? 程序

    3.2K22

    SAS Macro小技巧—获取文件路径

    今天给大家Share一下SAS Macro获取文件路径的技巧! 获取路径有哪些用途呢: 如果路径都用变量表示,当文件夹的物理路径发生变化时, 都还是可以直接运行程序!不需要修改成程序~ 上代码!...为SAS程序所在路径。...(如上代码可以直接复用) SAS 创建文件夹:如下代码: 这样做的的好处是啥呢,每次运行数据或者数据想实现自动存下来,这个时候就可以用SAS自动创建文件夹的方式来存储。... first: proc contnets 获取变量列表 并筛选出你需要变量。..._varstemp12 ; quit; data RAWDATA2; set RAWDATA1; &varlist1.; run; 如上: 讲语句都封装在变量里面,直接调用变量,就可以执行了

    4.5K31

    【学习】七天搞定SAS(六):的编写、程序调错

    SAS各种繁杂的PROC之后,还要来看看MACRO才可以嘛。又不能写函数... SAS中的MACRO:编写 MACRO主要是DO和%LET的各种组合,前者负责循环后者负责变量。...image.png 这样执行之后的结果就是: 虽然SAS不可以直接写函数,但是MACRO还是有参数可以传入的。 image.png 这样传入的参数会自动作为变量被替换掉。...SYMPUT:用数据值赋予变量 如果有的时候需要数据集中的值来给MACRO中的变量赋值,我们就需要使用CALL SYMPUT了。...我们先对数据flowersales进行了排序,然后选择第一名的订单用户,赋值给selectedcustomer这个变量,然后就可以直接在后面用&selectedcustomer调用这个变量值,去查找属于他的观测记录了...或者其他类似的语句无法被SAS理解的。 还有就是输入数据不正确或者有缺失值什么的...这个我觉得在数据源是数据库管理系统的时候,不是什么问题...

    4K60

    针对SAS用户:Python数据分析库pandas

    数据值也可以从一系列非Python输入资源加载,包括.csv文件、DBMS表、网络API、甚至是SAS数据(.sas7bdat)等等。具体细节讨论见第11章— pandas Readers。...pandas为许多读者提供控制缺失值、日期解析、跳行、数据类型映射等参数。这些参数类似于SAS的 INFILE/INPUT处理。 注意额外的反斜杠\来规范化Windows路径名。 ?...行计数值可以是任意整数值,: ? SAS使用FIRSTOBS和OBS选项按照程序来确定输入观察数。SAS代码打印uk_accidents数据的最后20个观察数: ? ? ? ?...这类似于SAS中的自动变量n。随后,我们使用DataFram中的其它列作为索引说明这。 下面是SAS程序打印一个带Sec_of_Driver和Time变量的数据的前10个观察数。...相应的SAS程序如下所示。PROC SQL SELECT INTO子句将变量col6的计算平均值存储到变量&col6_mean中。

    12.1K20
    领券