sas系统和数据分析sas宏功能简介(编辑修改稿)内容摘要:
电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 4 of 7 %宏名字(参数值)。 例如,我们定义了一个简单通用的宏程序 INVOKE,它有两个参数宏变量 proame 和dsname,用以传递给宏程序所需的过程名和数据集名。 在调用这个宏程序时要将具体的 参数宏变量值给出,其值分别为 Print 和。 程序如下: %MACRO INVOKE( proame, dsname)。 Proc amp。 proame Data=amp。 dsnmae。 Title “amp。 proame of Data Set amp。 dsname”。 Run。 %MEND INVOKE。 %INVOKE(Print , )。 上面这段程序在执行时,将被宏处理器替换成下面这段程序: Proc Print Data=。 Title “Print of Data Set ”。 Run。 2. 具有分支和循环的宏 与 SAS 系统 DATA 步和 PROC 步中可以使用分支和循环语句一样,也能在 %MACRO和 %MEND 语 句 间 , 用 条 件 %IF — %THEN/%ELSE 语 句 和 用 循 环 %DO— %END、 %DO %UNTIL— %END、 %DO %WHILE— %END语句来产生更复杂的宏。 虽然分支和循环的语句格式两者不相同,但两者的使用原理和方法却是相同的。 通常 SAS 宏程序比一般 的 SAS 语言程序要更难理解,主要的难点是宏程序中宏变量的传递和控制。 例如,假设我们已有两个宏 CREATE和 PRINT,宏 CREATE可以从参数宏变量 SETDATA1指定的数据集中创建一个新的数据集 ,宏 PRINT 可以打印一个参数宏变量SETDATA2 指定的数据集。 现在我们要定义一个控制宏 CONTROL,假定有时需要对指定的数据集先运行宏 CREATE,创建一个新的数据集 后,再调用宏 CREATE 打印这个新产生的数据集;有时却只要直接打印指定的数据集。 那么,我们可以用一个 %IF— %THEN 语句来定义宏 CONTROL。 程序如下: %Macro create(setname1)。 Data。 Set amp。 setname1。 If sex=39。 M39。 %Let dsname=。 Run。 d9b23f38bfa1b84ed65e213bfdffcda0 SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 5 of 7 %Mend create。 %Macro print(setname2)。 Proc print data=amp。 setname2。 Title Display of Data Set amp。 setname2。 Run。 %Mend print。 %Macro control(getdata,dsname)。 %If %upcase(amp。 getdata)=YES %Then %create(amp。 dsname)。 %print(amp。 dsname)。 %Mend control。 %control(no, )。 %control(yes,)。 当规定参数宏变量。sas系统和数据分析sas宏功能简介(编辑修改稿)
相关推荐
那么 SAS 系统自动地创建一些 SAS 数据集,并命名为 DATA DATA„这些数据集被存在 WORK 库中。 五、 SAS 数据集的索引 SAS 数据集可以用一个或几个被称为关键字变量的变量来索引。 SAS 索引根据用它们的值组成索引的关键字的个数多少而分为 : 简单索引 复合索引 1. 简单索引 简单索引是用一个关键变量的值来对观测定位指针。 这个关键变量可以是数值变量或字符变量
Data class4。 Set class2。 0e3194151c8f36e3d5fa7075bfdf439d SAS 系统和数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Created by Page 5 of 12 if total lt 450 then delete。 Proc print data=class4。 Run。 程序三: Data class4。
商务数据分析 电子商务系列 上海财经大学经济信息管理系 IS/SHUFE Page 10 of 30 3. 结果分析 表 (a)包括基本统计数,即每一变量的平均数、标准差。 表 中输出结果( b)为简单相关系数矩阵。 表 ( c)为输出相关矩阵的特征值。 表 输出结果( d)为特征向量。 我们从相关矩阵出发进行主成分分析。 从表 中输出结果 (c)可以看出,在最后一列累计贡献率中
和产生用户化的行标题和列标题。 2. PROC TABULATE 语句格式 在 PROC TABULATE过程中, 常常使用一些控制汇总报表产生的语句,一般过程形式如下: PROC TABULATE 选项列表。 CLASS 分类变量列表。 VAR 分析变量列表。 TABLE 页表达式, 行表达式, 列表达式 /表选项。 LABEL 变量 1=“标签 *内容 ” 变量 2=“标签 *内容 ”……。
这是一种交互式菜单编辑方式,非常方便。 例如,在 PROGRAM EDITOR 窗口中输入的程序如下: Proc fsview data=。 Run。 程序提交后,进入 FSVIEW 窗口。 用户仍然可以在命令框中键入命令来编辑,如键入DROP 命令去掉不需要显示的变量(投影操作) 、 WHERE 命令获得子集(选择操作)及 WHERE ALSO 命令获得子集的子集。 FSVIEW过程与
[1] c(a, b, c)[rep(c(2,1,3), 3)] [1] b a c b a c b a c 二、取负整数值的下标向量 v为一个向量,取值在- length(x)到- 1之间,表示 扣除 相应位置的元素。 例如: x[(1:2)] [1] 三、取逻辑值的下标向量 v为和 x等长的逻辑向量, x[v]表示取出所有 v为真值的元素,如: x 输出: [1] x10 输出: [1]