SAS入门基础(select结构和循环结构)

1.SELECT结构

格式一:
	SELECT (选择表达式);
	WHEN(值列表) 语句;
	WHEN(值列表) 语句;
	……
	OTHERWISE 语句;
	END;
功能及流程:
	执行SELECT结构时,先计算出选择表达式和值列表中的所有值,然后把选择表达式值由前
	向后与值列表中的值相比,发现相等值则执行对应的语句,然后退出SELECT结构(不再查
	看后面的值列表)。如果选择表达式的值不等于任何值列表中的值则执行OTHERWISE对应
	的语句,这种情况下没有OTHERWISE语句会出错。
例:
	DATA ;
	INPUT month $ @@;
	put month @;
	SELECT(month);
	WHEN('Feb', 'Mar', 'Apr') put '春天';
	WHEN('May', 'Jun', 'Jul') put '夏天';
	OTHERWISE put '秋天或冬天';
	END;
	CARDS;
	Mar Jun oct
	;
	run;

格式二:

SELECT;
WHEN(条件) 语句;
WHEN(条件) 语句;
……
OTHERWISE 语句;
END;
这种SELECT语句没有选择表达式,而是在每一个WHEN语句指定一个条件(逻辑表达式),
执行第一个满足条件的WHEN后的语句。如果所有条件都不满足则执行OTHERWISE后的语句。
例:
	data;
	input age @@;
	put age @;
	SELECT;
	WHEN(age<=12) put '少年';
	WHEN(age<35) put '青年';
	OTHERWISE put '中老年';
	END;
	cards;
	10 30 50
	;
	run;

2.循环结构

⒈计数DO循环
⒉当型循环
⒊直到型循环
⒈计数DO循环
	计数DO循环的格式:
	DO 计数变量 = 起始值 TO 结束值 BY 步长;
	循环体语句……
	END;
	这种结构与BASIC中计数循环很类似,功能也相当,只是在SAS中是以关键字DO开头(不是FOR),
	另外步长用BY引导(不是STEP),而结构以END结束(而不是NEXT)。
	其功能与流程:
	程序先把计数变量赋值为起始值,如果此值小于等于结束值则执行循环体语句,然后把计数变量
	加上步长,再判断它是否小于等于结束值,如果是则继续执行循环体,直到计数变量的值大于结
	束值为止。上述结构中“BY 步长”可以省略,这时步长为1。如果步长取负值,则继续循环的条
	件是计数变量大于等于结束值。
	计数DO循环举例:
		data;
		sum=0;
		DO i = 1 TO 10 ;
		sum +i;
		/*此处sum+i等价于sum=sum+i*/
		END;
		PUT sum=;
		run;
	在循环体中可以用LEAVE语句跳出循环(功能与C语言的break语句相当),如:
		data;
		n=13;
		flag=1;
		DO i = 2 TO n/2 ;
		if mod(n,i)=0 then do;
		flag=0;
		leave;
		end;
		END;
		if flag=1 then
		put n "是素数";
		else
		put n "不是素数";
		run;
	⒉当型循环
		当型循环的格式:
		DO WHILE(循环继续条件);
		循环体语句……
		END;
		程序先判断循环继续条件是否成立,成立时执行循环体语句,再判断循环继续条件,
		如此重复,直到循环继续条件不再成立。
		data;
		x=243;
		y=63;
		z=mod(x,y);
		DO WHILE (z ^= 0);
		x=y;
		y=z;
		z= mod(x,y);
		END;
		put y;
		run;
⒊直到型循环
	直到型循环的格式:
	DO UNTIL (循环退出条件);
	循环体语句……
	END;
	程序先判断循环退出条件是否成立,成立则结束循环,否则继续。
	例:
		data;
		n=0;
		do until (n>=5);
		n+1;
		put n=;
		end;
		run;
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值