.
SAS变量的只有 数据型 和 字符型,
输入格式:
input 变量1 输入格式1 变量2 输入格式2 ..... ;
data fh;
input x 4.2; /* 变量x 4.2 代表 宽度为4, 小数点2位 */
cards;
12
2.1
15.65
;
proc print; /* 读入数据显示在输出窗口 */
run;
出现结果是不是跟想的不一样?
.
w为日期宽度,宽度要小于32字节,
输入数据的形式不同,就要指定和它对应的输入格式
例如: 输入 072520 ,按月日年形式,w总宽度==6,要指定 mmddyy6 ,而不能想当然指定其他格式。如:yyyymmdd6,这是错误的!!
年月日之间可以加分隔符 " - " " / " " . " 等, 分隔符也占字节。 如 20-02-26 要指定成 yymmdd。
如果月数日数为一个数 必须➕0 ,如 05,08。
·
·
: 放在在 变量与 输入格式之间,作用是:告诉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;
data fh;
input city: $50. name $50.;
cards;
广东省 汕尾市 唐门 唐樽
广东省 汕尾市 红海湾 浩天 唐樽
;
proc print;
run;
这样跟我们想的不一样,
data fh;
input city&: $50. name& $50.;
cards;
广东省 汕尾市 唐门 唐樽
广东省 汕尾市 红海湾 浩天 唐樽
;
proc print;
run;
点击链接查看哦—>SAS 变量的输出格式