SAS 基础(1)SAS 变量的输入格式——细则

    科技2022-07-12  147

    SAS变量的输入格式

    SAS 变量的输入格式1.1 数据型变量输入格式:1.2 字符型变量输入格式1.3 日期型变量输入格式1.4 两个特殊输入符——:和 &1.4.1冒号的作用1.4.2 &号的作用 .

    SAS 变量的输入格式

    SAS变量的只有 数据型 和 字符型, 输入格式:

    input 变量1 输入格式1 变量2 输入格式2 ..... ;

    1.1 数据型变量输入格式:

    主要格式是 w.d w表示数字的总位数或宽度(包括小数点),d 表示小数部分的位数。 如,6.3 总位数是6,6中包括小数点,有 3 个小数 ; 4. 没有小数 总位数4,注意 没有小数也要把点号加上。 data fh; input x 4.2; /* 变量x 4.2 代表 宽度为4, 小数点2位 */ cards; 12 2.1 15.65 ; proc print; /* 读入数据显示在输出窗口 */ run;

    出现结果是不是跟想的不一样?

    观测1 的结果,是因为 SAS系统 规则,定义时每个系统要有2位小数,所以必须有2位小数,没有小数点就自动把整数降为小数。例如 12.0 读成12.00,12 读成 0.12 ;观测3结果 因为宽度超标为5 第五位没被读取就 成15.6,自动补位0 = 15.60;所以尽量不要加输入格式,以免画蛇添足。 .

    1.2 字符型变量输入格式

    SAS 默认对字符长度8字节(一个中文2个字节),如果变量宽度超过8字节 最好添加宽度值保证数据输出正确。 其中,字符输入变量格式为主要是 $ w.(小数点是必须添加的),$是必须添加的,w表示字节数。

    .

    1.3 日期型变量输入格式

    w为日期宽度,宽度要小于32字节,

    输入数据的形式不同,就要指定和它对应的输入格式 例如: 输入 072520 ,按月日年形式,w总宽度==6,要指定 mmddyy6 ,而不能想当然指定其他格式。如:yyyymmdd6,这是错误的!!

    年月日之间可以加分隔符 " - " " / " " . " 等, 分隔符也占字节。 如 20-02-26 要指定成 yymmdd。

    如果月数日数为一个数 必须➕0 ,如 05,08。

    · ·

    1.4 两个特殊输入符——:和 &

    1.4.1冒号的作用

    : 放在在 变量与 输入格式之间,作用是:告诉SAS,如果要读取下一个变量,需要满足下面任一条件:要么遇到空隔,要么变量的宽度读完了。

    举个冒号 : 作用例子:

    data fh; input city $30. zone$; cards; 广东省汕尾市 0660 广东省汕尾市红海湾 0661 ; proc print; run;

    /* 添加 : 后*/ data fh; input city: $30. zone$; cards; 广东省汕尾市 0660 广东省汕尾市红海湾 0661 ; proc print; run;

    看看冒号就是这么神奇吧!!

    在$ 后取宽度时要尽量取大值,防止 “宽度读完” 出现输出值缺失情况。 要注意一旦对变量指定宽度,SAS就按照指定的宽度读取变量,指定宽度就会忽略空格的作用。 看下面日期例子:

    data fh; input day1 yymmdd6. day2 yymmdd8.; cards; 201001 20201005 ; proc print; run;

    /* 加了冒号后显示正常 */ data fh; input day1: yymmdd6. day2: yymmdd8.; cards; 201001 20201005 ; proc print; run;

    总结: 如果超过2个以上的变量指定了宽度,最好用冒号结合大的宽度的方式输入,这样不会出现错误。
    1.4.2 &号的作用
    当变量值包含空格怎么办?? ? 只要在变量名加上& 就OK,例如: data fh; input city: $50. name $50.; cards; 广东省 汕尾市 唐门 唐樽 广东省 汕尾市 红海湾 浩天 唐樽 ; proc print; run;

    这样跟我们想的不一样,

    data fh; input city&: $50. name& $50.; cards; 广东省 汕尾市 唐门 唐樽 广东省 汕尾市 红海湾 浩天 唐樽 ; proc print; run; 添加了 & 在 $前,在想隔开的数据前打上2个或者2个以上空格,这样SAS就把这 “2个或者2个以上空格”作为变量分隔符,而不是把一个空格作为分隔符了。 学了变量的输入格式下一章就是 变量的输出格式啦!!

    点击链接查看哦—>SAS 变量的输出格式

    Processed: 0.016, SQL: 8