SAS编程基础(1):语法基础

时间:2024-10-30 07:54:43

/*if判断 */
data custer;
input id $ level $ amount 5. @;
label id=‘卡编号’ level=‘级别’ amount=‘信用额度’;
cards;
1001 A 199
1002 B 100
1003 C 2000
1004 A 223432
1005 B 100032
1006 C 100000
;

data atype btype ctype;
set custer;

if level='A' then
	output atype;
else if level='B' then
	output btype;
else output ctype;
  • 1
  • 2
  • 3
  • 4
  • 5

run;

proc print data=ctype label;
title “c类信用卡额度”;
run;

/* select when (when) otherwise */
data zonecity;
input zone $ address $ @@;
cards;
100070 丰台区 272192 微山县 200000 北京
;

data changezone;
set zonecity;
select;
when (zone=“100070”) zone=“北京”;
when (zone=“020”) zone=“山东”;
otherwise zone=“其他省份”;
end;
run;

/* do while (先判断 后执行) */
data autoplus;
x=0;

do while (x<11);
	x=x+2;
end;
;
put x=; /* 输出到日志窗口 */
  • 1
  • 2
  • 3
  • 4
  • 5

run;

/* do until 先执行 后判断*/
data un;
x=8;

do until (x=10);
	x=x+2;
end;

put x=;
  • 1
  • 2
  • 3
  • 4
  • 5

run;

/* do to do 开始变量值 to 终止变量值 by 每次增加量*/
data instance;
do i=1 to i=9 by 3;
x=i;
end;

put x=;
  • 1

run;

/* 操作符 与 宏变量 */

/*
算数运算符


  • ** 乘方
    / 除法
    */

/*
比较运算符
=(EQ)
^=(NE)

(GT)
<(LT)
=(GE)
<=(LE)
*/

/*
逻辑运算符
AND(&)
OR(|)
常用字符串链接(!!)(||)
*/

/*
sas 指针概念
@ 表示执行下一个操作时,指针移到下一个记录。
@@表示执行下一个操作,指针保持在当前记录。
*/
data cred_score;
input id $ name $ sex $ score @@;
cards;
1001 张晓红 M 300 1002 董大伟 F 200 1003 李大嘴 M 400 1004 张翠花 M 500
;

data greater300 less300;
set cred_score;

if score>300 then
	output greater300;
else output less300;
  • 1
  • 2
  • 3

run;

/* 宏变量 %let 宏变量名<=赋值>; */

/* 格式修饰符与指针控制 */

/*
格式修饰符 常用于input关键字之后
:冒号 从非空格开始读取变量所对应的数据
& 修饰所读取为字符型的列数据中含有一个或一个以上空格的字符数据
~ 修饰所读取对应列包含单引号或双引号或分隔符的字符列
*/

/*
指针控制
语法格式:
(1)@n 指明列的开始位置 是对应变量的数据开始列位置
(2)n1-n2 n1列开始位置 n2列结束位置
(3)单个@; 控制sas行位置的指针 让指针控制在当前行 当遇到下个INPUT时行指针才移动
(4)@@; input语句中读取外部数据文件或者数据块中的数据时 若多条观测记录写在一行 为控制列中每个列对应数据到相应的列变量中 一行数据分割读取

*/

定义的物理位置

%let credtype_path=“d:\jx\”;
filename wbsj “&credtype”;
data wbsjdata;
infile wbsj;
run;

/*
INPUT语句
1)读取外部数据文件或cards语句之后的数据块
2)定义变量 指定变量长度以及定义变量类型

PUT语句
1)输出到SAS系统的日志窗口 data null “\n"set dataset (”\n") put varname;
2)输出到FILE语句指定的外部文件 data null “\n” file dirpath “\n” set dataset ("\n") put varname;
3)输出到SAS系统的OUTPUT窗口
*/

/*
INFILE 读取外部文件的设置
语法格式: INFILE “物理位置或逻辑文件名” ;
FILE 写入外部数据文件
语法格式: FILE 文件名 <ENCODING=‘编码类型’><选项><主机选项>;
*/