SAS advanced lab 机经汇总_lab机经_Miya_o00的博客-程序员宅基地

技术标签: SAS技能——认证备考  

在一个program用预存的%scoreit(your-saved-program)运行,log里面反馈一个response。

一、proc sql

1、在proc sql里创建一个table,table里包含表1中MAKE和TYPE的唯一值和表二中的rebate。
Make、Type、Rebate

proc sql;
    create table cert.car as 
        select cars.make,cars.type,rebate.rebate
        from cert.cars full join cert.rebate 
        on car.make=rebate.make
        and
        on cars.type=rebate.type;
quit;

2、在sql中创建新变量

libname cert "c:/cert/input";
proc sql;
    create table result as
        select month,data,
               case
                   when var1<10 then "low"
                   when var1=10 then "mid"
                   else "high"
               end as var_new
    from cert.input04;
quit;

3、用proc sql创建一个table,按组求平均值大于50000的内容。

proc sql;
    select avg(x) 
	from data1
	group by var2
    having avg(x)>50000;
quit;

二、array

1、写一个array LS,有LENGTH1-LENGTH3,另外一个array NEW,有NEWLENGTH1-NEWLENGTH3,有一个data set,LS单位是in,NEW是换算后的cm,NEW(i)=2.54*LS(i)

data act01;
    set cert.input02;
    array LS(*) LENGTH1-LENGTH3;
    array NEW(*) NEWLENGTH1-NEWLENGTH3;
    do i=1 to 3;
        NEW(i)=2.54*LS(i);
    end;
    drop i;
run;

2、dataset中的数值变量中missingvalue变成0。

libname cert "c:/cert/input";
data miss;
    set cert.input02;
    array vars(*) _numeric_;
    do i=1 to dim(vars);
        if vars(i)=. then vars(i)=0;
    end;
    drop i;
run;

3、array把q1-q10的A,B,C,D,E换成1,2,3,4,5存在num1-num10中

proc import datafile="/folders/myfolders/certadv/ABCDE.xlsx"
	dbms=xlsx
	out=abcde
	replace;
run;
data result;
	set abcde;
	dorp i;
	array var_q(10) q1-q10;
	array var_num(10) num1-mun10;
	do i=1 to 10;
		if(var_q(i)=A) then var_num(i)=1;
		else if(var_q(i)=B) then var_num(i)=2;
		else if(var_q(i)=C) then var_num(i)=3;
		else if(var_q(i)=D) then var_num(i)=4;
		else if(var_q(i)=E) then var_num(i)=5;
	end;
run;

4、把tax1-tax15演算成tot1-tot15,tot1=tax1*10;

data miss;
	set cert.input004;
	array var_tax(15) tax1-tax15;
    array var_tot(15) 
	do i=1 to 15;
		var_tot(i)=var_tax(i)*10;
	end;
	drop i;
run;

 

 三:macro

1、check题:直接%check()就行了,添加mprint,mlogic看log即可。

2、写一个含有comment的macro(comment的内容不能执行),后面macro的内容是一个proc print 的语句,最后执行这个macro。

3、定义一个global variable X,initial value is 1.25,用do循环 increment 0.25,一直到2。
整数运算:%eval()
浮点运算:%sysevalf()

%let X 1.25;
%macro loop(Y);
	%do %until (&Y>2)
		%put &Y;
		%let Y=%syseval(&Y+0.25);
	%end;
%mend loop;
options mprint mlogic;
%loop;

4、建一个macro,在do loop里面写一个if语句

%macro loop(start,end);
    %do i=&start %to &end;
        %if &i>10 %then %do;
            data x&i;
                x=&i;
            run;
        %end;
    %end;
%mend;
%loop(1,200);

5、用sql把region=‘AMR’的avg(var)存成一个macro variable 用into:mvar

proc sql;
    select agv(revcargo) into:mvar
        from certadv.cargorev
        where region='AMR';
quit;

 四:proc fcmp

1、in-cm的转换

libname cert "c:/cert/input";
proc fcmp outlib=work.functions.dev;
	function change(in);
        cm=2.45*in;
		return(cm);
	endsub;
quit;
options cmplib=work.functions;
data length;
	set all;
	height=change(fee);
run;

五:hash

data info19 error19l;
    drop rc;
    length country_name $30;
    if _n_=1 then do;
	    call missing(country_name);
	    declare hash C(dataset:'country19');
	    c.definekey('country_code');
	    c.definedata('country_name');
	    c.definedone();
    end;
    set countre20;
    rc=c.find;
    if rc=0 then OUTPUT info19;
    else output error19;
run;

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44450031/article/details/107337661

智能推荐

opencv版本较高引起的兼容问题_cv2版本过高会有写代码用不起吗-程序员宅基地

error LNK1104: 无法打开文件“cxcore.lib" 转载▼问题原因:你项目的附加依赖项中写了这个文件,但是你指定的库目录中没有此文件,所以各种连接错误。解决办法:情况1、如果你的opencv是1.0,你的确有这个文件excore.lib,你只需要按照如下网址去配置opencv即可。推荐网址:opencv中文网站:“_cv2版本过高会有写代码用不起吗

Mininet笔记-mininet可视化构建拓扑+ryu控制器_在mininet或miniedit中创建1台交换机连接5台主机的拓扑,并实现与控制器的_asjodnobfy的博客-程序员宅基地

打开mininet可视化面板:./miniedit.py画了个挺丑的拓扑,一个控制器,两个交换机,三个主机,并做了配置。其中,控制器配置的是远程控制器:配置完Run了以后,右击进入了主机h1的Terminal,ping第二台主机的IP地址10.0.0.2,不通。原因:配置了远程控制器,但是远程控制器并没有开启。因此需要开启Ryu控制器:`root@ubuntu:/home/lzy/ryu/ryu/app# ryu-manager simple_switch.py再一次通过h1 ping _在mininet或miniedit中创建1台交换机连接5台主机的拓扑,并实现与控制器的

signature=1d9dbc59b3adb63e71754c79fa39fb51,luoli.txt_欢小颜的博客-程序员宅基地

8C9BF3E5336A42BD6C672F074F50C38CE0F55289BF0EDF5515AD971175A515B2604AC2AAD9E8780DF4470DA417899ABC6371A688A7F8AF81F3D20370EBF2103AF1DFB012B7C9F3C6066F4B41AD8C60EDB99C41C0A1BE07EA69CC0F19F94C6E8E57319391..._1eaf570916725cdb83964798dc40ca83

用Java实现中缀表达式转后缀表达式_将中缀表达式转化为后缀表达式java_像风如你~的博客-程序员宅基地

中缀表达式转后缀表达式后缀表达式后缀表达式又称逆波兰表达式,明显的特点是:逆波兰表达式中没有括号,计算时将操作符之前的第一个数作为右操作数,第二个数作为左操作数,进行计算,得到的值继续放入逆波兰表达式中。 但日常生活中我们总是习惯于写中缀表达式,所以需要先将中缀表达式转为后缀表达式。规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。简单图解后缀表达式opStack用于存储操作符,suffixList用于存_将中缀表达式转化为后缀表达式java

socket简介及java实例_java jdbc socket介绍-程序员宅基地

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。Socket的英文原义是“..._java jdbc socket介绍

ARM+Android还是 MeeGo+X86-程序员宅基地

平板电脑将采用何种软硬件的搭配?目前的手持市场,Android在操作系统火透半边天,ARM则在硬件平台火透半边天。据了解,目前高通、飞思卡尔、Marvell、TI等欧美公司都已推出基于CortextA9的应用处理器,中国本土也有10多家公司在基于ARM核开发应用处理器,包括福州瑞芯微、安凯微电子、华芯飞、全胜、中星微等,台湾地区还有Ali和凌阳。瑞芯微是中国IC公司中第一个被授权CortextA9_arm+android

随便推点

Springboot+mybatis+MySQL实现简单的多表查询-程序员宅基地

Springboot+mybatis+MySQL实现简单的多表查询直接进入正题1.首先我们新建一个数据库,再建两个表tbl_employee表建表SQL语句CREATE TABLE `tbl_employee` ( `id` int(200) NOT NULL AUTO_INCREMENT, `last_name` varchar(255) DEFAULT NULL, `ema...

docker前后端分离_Docker分离模式介绍-程序员宅基地

docker前后端分离 Docker分离模式 (Docker detached mode)Detached mode, shown by the option --detach or -d, means that a Docker container runs in the background of your terminal. It does not receive input or dis...

Exchange ProxyShell复现_exchange getshell-程序员宅基地

0x1 参考链接https://blog.csdn.net/qq_41874930/article/details/120037619https://www.zerodayinitiative.com/blog/2021/8/17/from-pwn2own-2021-a-new-attack-surface-on-microsoft-exchange-proxyshellhttps://www.4hou.com/posts/8Wp2https://peterjson.medium.com/repr_exchange getshell

SRS之播放推流视频-程序员宅基地

1. 综述首先,推流直播的配置文件如下:# rtmp.conflisten 1935;max_connections 1000;daemon off;srs_log_tank console;vhost __defaultVhost__ {}搭建的简陋直播步骤如下:启动 srs:./obj/srs -..._srs管理页面怎么看到所有视频流列表

[蓝桥杯]算法提高 秘密行动(动态规划)-程序员宅基地

问题描述  小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面。这座大厦有一个神奇的特点,每层的高度都不一样,同时,小D也拥有一项特殊能力,可以一次向上跳跃一层或两层,但是这项能力无法连续使用。已知向上1高度消耗的时间为1,跳跃不消耗时间。由于事态紧急,小D想知道他最少需要多少时间到达顶层。输入格式  第一行包含一个整数n,代表楼的高度。接下来n行每行一个整数ai,代表i层的楼层高度(ai <= 100)。输出格式  输出1行,包含一个整数,表示所需的最短时间。样例输入53

Yii2.0 批量插入数据_yii2 insert-程序员宅基地

循环插入:第一种方法:$model=new User();foreach($data as $attributes){ $_model=clone $model; $_model->setAttributes($attributes); $_model->save();}第二种方法$model=new User();foreach($data as $attrib_yii2 insert