本文主要是介绍sas学习笔记之time.和tod.、@和@@、deadlines和deadline4对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
sas学习 之time.和tod.、@和@@、deadlines和deadline4对比
在学习sas时经常会碰到一些options会有不同的选择,那么他们的区别在哪里呢。
1、 time.VS tod.
time.:9:00(小时若只有一位则会用空格来填充)
tod.:09:00(小时若只有一位则会用0来填充)
time 的值可以是 sas 时间值,但它表示持续时间。因此,time 的值可以超过 23:59:59,也可以是负值。
而tod是采用24小时制,一旦其时间超过24:00:00或者小于00:00:00,他则会自动更改为24小时制表示发。您可以为 tod格式指定一个大于 24:00:00 的值,但它采用该值的 mod 和 24:00:00。例如,如果为tod指定值 '25:00:00’t,则会将该值的格式设置为 1:00:00。
具体例子为:
data one;
format time11 time. time12 tod.time21 time. time22 tod.;time11 = '9:00:00't*3;time12 = '9:00:00't*3;time21 = '9:25:00't-'10:30:00't;time22 = '9:25:00't-'10:30:00't;
run;
最终会有如下结果:
2、@ VS @@
@:读取数据时,所有变量在一行读取完之后自动读取下一行数据作为下一行的观测
@@:形成输出记录时读取所有数据,即使某一行数据个数大于变量个数也不换行
区别与联系:@作用类似与@@,都是行停留指示符,不同的地方在于停留多久,@能使sas停留到下一个input语句(也不换行),@@能使停留的时间到下一个data步(也不换行)
关于@和@@这里不再过多赘述,链接中的文章写的很清楚明了
3、deadlines和deadline4
- cards是几十年前输入数据是使用的打孔卡,其对于行的长度有一定的限制。datalines和dataline4都是后来为了突破行长度的限制添加的。其中dataline4中可以使用一些有特殊探疑的符号,且用四个连续的分号开始的一行来标记数据行的结束,而deadlines只需要一个分号即可。
- 数据行不能包含分号。当数据包含分号时,需用 dataline4 语句即dataline4 可以读取包含您直接在程序中输入的分号的数据。
/*deadlines例子*/
data person;infile datalines delimiter=','; input name $ dept $;datalines;
John,Sales
Mary,Acctng
;/*deadline4例子*/
data biblio;input number citation $50.;datalines4;KIRK, 1988
2 LIN ET AL., 1995; BRADY, 1993
3 BERG, 1990; ROA, 1994; WILLIAMS, 1992
;;;;
这篇关于sas学习笔记之time.和tod.、@和@@、deadlines和deadline4对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!