SAS变量的输入和输出格式
输入输出
SAS输入输出的基本格式很简单:
输入:INPUT 变量1 输入格式1 变量2 输入格式2……;
输出:FORMAT 变量1 输入格式1 变量2 输入格式2……;
*中间需以空格间隔
输入格式很简单,但是不同变量类型的输入格式是不同的
指定输入格式会改变变量的值,但是指定输出格式不会改变变量的值,只是改变他们显示的样子
数值型变量的输入格式
数值性变量的输入格式主要是W.D
W:表示数值的总位数或宽度,包括小数点,小数点占1位
D:表示数值小数部分的位数
如8.2,表示总位数8,3位小数(即00.000的格式)
如4.,表示总位数4,没有小数
点号一定要加,不管有没有小数
数值型变量的输出格式
数值型变量的输出格式主要有三种:
① W.D:含义与输入格式一致
② commaW.D :将数值的整数部分自右向左每三位用逗号隔开
③ percentW.D : 将数据显示百分号的形式,它会自动将变量乘以100后加上%
*comma 和 percent 后面需要紧跟W.D,不能有空格
代码输入:
输出结果:
字符型变量的输入格式
字符型变量的输入格式是W.
是必须加的
W表示字节数,一般在超过8字节时候才有必要加(1个中文根据编码不同占2或3个字节)
SAS默认字符读取8位,超过8位的部分就会被截取掉。
所以对超过8字节的需要加上宽度指,只要加上宽度指,后面必须加"."
但如果只有没有宽度指,不用加"."
代码输入:
输出结果:
日期型变量的输入格式
日期型变量的输入格式较多,下表列出常用的日期型输入格式
其中W表示宽度,不能超过32,具体写多少根据录入的数据宽度而定
日期型变量的输出格式
日期型变量的输出格式与输入格式基本一致,不过输出格式可以在宽度前面加上一个字母,以区分各种显示形式。
代码输入:
输出结果:
两个特殊输入符
1.冒号(:)的作用
SAS中默认以空格作为变量分割标志,如果变量内容长度不一时,可在变量和输入格式之间加上一个冒号来解决
冒号的作用是告诉SAS,如果要读取下一个变量,需要满足下面任一条件:要么遇到空格,要么变量的宽度读取完毕。
代码输入:
输出结果:
2.合号(&)的作用
如果变量值本身包含空格时,需要用&来结局
代码输入:
输出结果:
自定义输入和输出格式
SAS中自定义格式是通过PROC FORMAT过程来实现的
其基本形式是:
PROC FORMAT;
INVALUE <格式名变量值或取值范围输入格式变量值或取值范围输入格式;> 格式名 变量值或取值范围1=输出格式1 变量值或取值范围2=输出格式2 ……;
PICTURE 模板名 <数值范围>;
代码输入:
输出结果:
SAS的决策结构
决策结构要求程序员指定由程序评估或测试的一个或多个条件,以及如果条件被确定为真则要执行的一个或多个语句,相反如果条件为假则不执行。
决策结构的基本格式为:
IF 表达式 THEN 新变量= ;
ELSE 新变量= ;
代码输入:
输出结果:
SAS的循环语句
循环语句的基本格式为:
DO 变量=初始值 to 最终值 ;
SAS 语句;
END;
循环语句的实例1
求A=20的斐波那契数列
代码输入:
输出结果:
循环语句的实例2
计算1+2+……+20=?
代码输入(含计算过程):
输出结果:
循环语句的实例3
有100元钱,公鸡3元1只,母鸡5元1只,小鸡1元3只,正好购买100只鸡,每种鸡至少有1只。
问最终有几种购买方案
代码输入:
输出结果: