Hi Reeza, I did what you said, but using the if statement causes my ret column in the reta file to be empty. Here is my log: 377 proc import out=ARI 378 datafile= "c:\evantus\A-RI-main.csv" dbms = csv replace; 379 getnames=yes; 380 datarow= 2; 381 GUESSINGROWS=20000; 382 run; 383 /********************************************************************** 384 * PRODUCT: SAS 385 * VERSION: 9.4 386 * CREATOR: External File Interface 387 * DATE: 31JUL15 388 * DESC: Generated SAS Datastep Code 389 * TEMPLATE SOURCE: (None Specified.) 390 ***********************************************************************/ 391 data WORK.ARI ; 392 %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ 393 infile 'c:\evantus\A-RI-main.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ; 394 informat comnam $64. ; 395 informat dscd $6. ; 396 informat caldt mmddyy10. ; 397 informat RI best32. ; 398 format comnam $64. ; 399 format dscd $6. ; 400 format caldt mmddyy10. ; 401 format RI best12. ; 402 input 403 comnam $ 404 dscd $ 405 caldt 406 RI 407 ; 408 if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ 409 run; NOTE: The infile 'c:\evantus\A-RI-main.csv' is: Filename=c:\evantus\A-RI-main.csv, RECFM=V,LRECL=32767,File Size (bytes)=1689113, Last Modified=30Jul2015:17:48:25, Create Time=30Jul2015:17:48:25 NOTE: 28769 records were read from the infile 'c:\evantus\A-RI-main.csv'. The minimum record length was 40. The maximum record length was 89. NOTE: The data set WORK.ARI has 28769 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.09 seconds cpu time 0.04 seconds 28769 rows created in WORK.ARI from c:\evantus\A-RI-main.csv. NOTE: WORK.ARI data set was successfully created. NOTE: The data set WORK.ARI has 28769 observations and 4 variables. NOTE: PROCEDURE IMPORT used (Total process time): real time 3.61 seconds cpu time 3.46 seconds 410 proc sort data=ari; 411 by caldt dscd; 412 run; NOTE: There were 28769 observations read from the data set WORK.ARI. NOTE: The data set WORK.ARI has 28769 observations and 4 variables. NOTE: PROCEDURE SORT used (Total process time): real time 0.26 seconds cpu time 0.03 seconds 413 data reta; 414 set ari; 415 by caldt dscd; 416 ret=dif(RI)/lag(RI); 417 if first.dscd then ret=.; 418 keep comnam dscd caldt ret; 419 run; NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 1 at 416:12 NOTE: There were 28769 observations read from the data set WORK.ARI. NOTE: The data set WORK.RETA has 28769 observations and 4 variables. NOTE: DATA statement used (Total process time): real time 0.14 seconds cpu time 0.03 seconds But as soon as I delete the if statement the returns will be calculated. Thanks, Niloo
... View more