SAS中文论坛
标题:
data步操作
[打印本页]
作者:
shiyiming
时间:
2010-10-13 11:07
标题:
data步操作
DATE_D=ifc(substr(repair_time,9,6)>"&M_TIMEDLM",put(input(substr(repair_time,1,8),?? yymmdd10.)+1,yymmddn8.),substr(repair_time,1,8));
哪位高手能告诉我,这个语句的作用和结果,谢谢!
作者:
shiyiming
时间:
2010-10-13 13:15
标题:
Re: data步操作
overview:
截取repair_time的非日期字符,与宏变量m_timedlm进行比较;如大于则将repair_time的日期部分加1后赋给字符变量date_d,否则直接将日期部分赋给date_d
details:
1 repair_time: 疑似一包含日期的字符串(日期格式为YYYYMMDD,在字符串的前8位)
1.1 substr(repair_time,9,6):从第9个字符开始,取6个字符,用于与宏变量比较
1.2 substr(repair_time,1,8):从第1个字符开始,取8个字符,即取出日期的字符串
1.2.1 put(input(variable,informat.),format.):将日期部分转为数值,再转回字符
2 &m_timedlm: 宏变量,值为一字符串
3 ifc()函数改写成if语句为:
if repair_time的非日期字符(9-14位) > &m_timedlm then
date_d=从repair_time取出的日期+1 ;/*日期加1*/
else date_d=从repair_time取出的日期; /*日期不变*/
作者:
shiyiming
时间:
2010-10-13 15:34
标题:
Re: data步操作
谢谢hopewell大哥的帮助
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2