sas为什么format和informat之前要用length语句

 我来答
在晴天的雨伞
2016-05-31 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1211万
展开全部
SAS中informat用来设定输入数据的格式,而format用来设定输出数据的格式。举个例子,输出当前
  data time;
  x=date();
  format x mmddyy10.;
  put x=;
  run;
  如果没有format行,那么SAS系统就会把当前时间输出为一个数字(SAS用相对1960年1月1日的天数来存储日期),format指定了x的输出格式,以便于用户阅读。Format改变的是输出格式,而informat则是关于SAS的读入格式。举例,如果你的C盘下有个文本数据文件informat.txt,储存的是一个时间变量dte,有两个观测值:
  dte
  2007-9-12
  你要是这样读取,就会出错:
  data a;
  infile “c:\informat.txt” firstobs=2 obs=3;
  input dte;
  run;
  因为这里并没有指定输入数据格式,如果是数值数据,这当然没问题,但SAS并不认识时间,这时你就要用informat了,下面的程序就旅袜顷能正确读入informat.txt了:
  data a;
  infile “c:\informat.txt” firstobs=2 obs=3;
  input dte;
  informat dte yymmdd10.;
  run;
  这里yymmdd10.就是时间的读入的格式,这让SAS知道了读入的数据是时间,拆陆它可以进行相应的转换来存储并读入。由于SAS对时间做了转换,也就是存储为相对于1960年1月1日的天数,为了能够让输出我们能够明白,即不是数字,我们还可以用format来改变输出格式,完整的程序如下:
  data a;
  infile “c:\informat.txt” firstobs=2 obs=3;
  input dte;
  informat dte yymmdd10.;
  format dte yymmdd10.;
  put dte=;
  run;
  注:选项firstobs表示从第几行开始读入,obs表示到第几行读入结束,也就是从第firstobs行读到obs行好团,不设置obs则一直读到数据文件结尾。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式