SAS编程|if语句/where语句/select语句

        if语句和where语句是SAS中最常用的逻辑判断语句,主要用于数据筛选和条件赋值。当进行多分支的条件判断时,可以使用if...else语句来实现。如下:

if .<AGE<18 then AGEGR1N=1;
	else if 18<=AGE<=40 then AGEGR1N=2;
		else if 41<=AGE<=64 then AGEGR1N=3;
			else if 65<=AGE<=75 then AGEGR1N=4;
				else if AGE>75 then AGEGR1N=5;
AGEGR1=choosec(AGEGR1N,'18yr以下','18-40yr','41-64yr','65-75yr','75yr以上');

        理论上,else的语句可以无限长,囊括所有条件判断和操作,但如果条件判断过多,为了简化程序,可以使用select语句,其语法如下:

select;
    when(条件1) 操作语句1;
    when(条件2) 操作语句2;
    ...
    otherwise 操作语句n;
end;

         该语句的用途是根据某变量不同的值(值1,值2,…)进行不同的操作,最后以otherwise设定when语句没有包含的情况下的操作。可以用在计划外其他检查中存在有实验室检查指标的值时,例如:

data fa(where=(^missing(LBCAT)));
	format LBTEST LBTESTCD LBORRES LBSTRESU $200.;
	length LBTEST LBTESTCD LBORRES LBSTRESU $200.;

	set raw.fa(in=a rename=(FACLSIG=LBCS FACAT=LBCAT FAORRES=LBORRES FAORRESU=LBSTRESU FADESC=ADES));
	if a then do;
		select(FATEST);
		when('嗜酸细胞百分比') do;LBTEST='嗜酸细胞百分比'; LBTESTCD='EO'; end;
		when('RBC-M红细胞(高倍视野)') do;LBTEST='红细胞(高倍视野)'; LBTESTCD='URBC'; end;
		when('WBC-M白细胞(高倍视野)') do;LBTEST='白细胞(高倍视野)'; LBTESTCD='UWBC'; end;
      	when('高密度脂蛋白胆固醇') do;LBTEST='高密度脂蛋白胆固醇'; LBTESTCD='HDL'; end;
	  	when('天门冬氨基酸基转移酶') do;LBTEST='天门冬氨基酸基转移酶'; LBTESTCD='AST';end;
	  	when('丙氨酸氨基转移酶') do;LBTEST='丙氨酸氨基转移酶'; LBTESTCD='ALT'; end;
	  	when('γ-谷氨酰基转移酶') do;LBTEST='γ-谷氨酰基转移酶'; LBTESTCD='GGT'; end;
      	other LBCAT='';
    	end;
	end;
run;

        除了if语句和select语句,where语句也能达成类似的功能。需要注意的是,where语句只能用于数据筛选,而不能用于条件赋值。

        if语句是在PDV执行之后才执行,针对待处理数据进行筛选或赋值,而where语句是在PDV执行之前就已经被执行,当数据被读取至缓冲区的时候就已经被筛选完成。

        if与where在应用时的更多差别如下所示:

ifwhere
执行在PDV之后执行在PDV之前
在by语句之后执行在by语句之前执行
data步创建的变量可以在接下来的if语句中被使用data步创建的变量无法被where使用,因为where语句在变量创建前已经执行
执行速度比where慢执行速度更快,因为在待处理数据创建前已经筛选部分数据
SAS Enterprise Guide 是一款强大的数据分析和报告工具,而 SQL(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。 在 SAS Enterprise Guide 中,我们可以使用 SQL 语句来查询、过滤和汇总数据,以便进行数据分析和报告生成。 在使用 SAS Enterprise Guide 进行数据分析时,可以通过 SQL 语句来执行以下操作: 1. 数据查询:可以使用 SELECT 语句来选择需要的字段,并使用 FROM 语句指定数据表或视图的名称。例如,可以使用以下 SQL 语句查询表中的订单信息: ``` SELECT order_id, order_date, total_amount FROM orders; ``` 2. 数据过滤:可以使用 WHERE 子句来筛选满足指定条件的数据。例如,可以使用以下 SQL 语句查询订单金额大于100的订单信息: ``` SELECT order_id, order_date, total_amount FROM orders WHERE total_amount > 100; ``` 3. 数据汇总:可以使用 GROUP BY 子句对数据进行分组,并使用聚合函数(如 SUM、COUNT、AVG)对数据进行汇总计算。例如,可以使用以下 SQL 语句按照客户分组,并计算每个客户的订单数量和总金额: ``` SELECT customer_id, COUNT(order_id) AS order_count, SUM(total_amount) AS total_sales FROM orders GROUP BY customer_id; ``` 总之,SAS Enterprise Guide 提供了强大的 SQL 功能,可以帮助用户进行数据分析和报告生成。通过编写 SQL 语句,我们可以灵活地查询、过滤和汇总数据,以满足不同需求的数据分析任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值