方法/步骤 1 第一种:%macro setups;%global PATH PGMLIB PROJECT;%LET CURRENTROOT= %upcase(%sysget(sas_execfilepath));%LET PGMLIB=%upcase(%sysfunc(substr(&CURRENTROOT.,1,%index(%sysget(sas_execfilepath),\%sysget(sas_execfilename)));%PUT NOTE:&CURRENTROOT.;%PUT NOTE:&PGMLIB.;Libname...
4 循环结构 1. 计数DO循环 DO 计数变量=起始值TO结束值BY步长: 循环体语句……: END; 在循环体中可以用LEAVE语句跳出循环,相当于C语言的break语句。 在循环体内用CONTINUE语句可以立即结束本轮循环并转入下一轮循环的判断与执行。 (2)当型循环 DO WHILE 循环继续条件: 循环体语句……: END; (3)直到型 DO...
小括号里面的参数用逗号分隔开。例如 x = substr(y,1,10);这个Statement由名称x,赋值运算符= 和sub...
小括号里面的参数用逗号分隔开。例如 x = substr(y,1,10);这个Statement由名称x,赋值运算符= 和sub...
%macro get_file(dirpath =, outdt =, type = sas ); %if "&dirpath." ne "" %then %do; %local dirpath_tmp slash; %let slash = %substr(%sysfunc(compress(&dirpath., : _ , a d)), 1, 1); *Remove trailing slash; %if "%substr(&dirpath., %length(&dirpath.),1)"= "&sla...
SUBSTR(S,N,LONG):字符串S中的第N个字符开始抽取long个字符长的子串。 TRANWRD(S,S1,S2):将字符串S中的所有字符串S1替换成字符串S2。 ⒍日期和时间函数(Date and Time Functions) 常用日期和时间函数有: DATEIF(sdate,edate,basis):计算两个日期之间相距的天数,basis指定日期格式。
单个字符串提取一部分以及替换:SUBSTR(string,position<,length>).tranwrd(X,"AB","K");/*用K代替AB*/ left 移动到左边,right移动到右边,trim. 去掉尾部空格。strip去掉头尾空格 字符长度用length(str)来计算。 upcase lowcase INTNX(interval,start-from,increment<,alignment>) INTCK(interval,start-date,end...
SUBSTR(&SYSDATE,6,2)),MONNAME.);PROC TABULATE DATA=XJF.YTDSALES;TITLE"SALES FOR QUARTER FROM &STRTMO TO &LBLMONTH";WHERE &QTRSTART LE MONTH(DATESOLD) LE &REPMONTH;CLASS SECTION;VAR LISTPRICE SALEPRICE;TABLES SECTION, (LISTPRICE SALEPRICE)*(N*F=6. SUM*F=DOLLAR12.2);RUN;%END;%END...
对于SUBSTR函数,它的替换功能是对原变量指定的字符串用右边赋值内容替换,是对原变量的修改。实际应用中也是用在数据步对读取的外部数据文件或关系数据库表等变量进行替换。 【例3.2】SUBSTR函数替换功能应用,对【例3.1】程序进行改造,将身份证号修改为以370开始,其他不变。 【程序解读】 读取数据文件,并对身份证号...
day = strip(substr(__dtpart, 7, 2)); end; else if lengthn(strip(__dtpart)) = 0 then call missing(year, month, day); else do; if length(strip(__dtpart)) = 4 then put %sysfunc(compress("WARN ING:")) dattim "insufficient to determine if date part represents YYYY or DDMM or...