Before removing the code as suggested, I tried running it one more time and this is my log. As you can see it is giving me an error in the section where you said I should remove the line of code. I get the same error when I remove the code or leave that line in. Advice???? proc iml; NOTE: Writing HTML Body file: sashtml1.htm NOTE: IML Ready 96 use out.FinalAssignwithSamples; 97 read all var _num_ into age[c=vname] ; 98 close ; NOTE: Closing OUT.FINALASSIGNWITHSAMPLES 99 100 start function(x) global(age,group,nrow,ncol); 101 sum_group=j(group,ncol,0); 102 do i=1 to group; 103 do j=1 to nrow; 104 if x[j]=i then sum_group[i,]=sum_group[i,]+age[j,]; 105 end; 106 end; 107 obj=sum(sum_group[<>,]-sum_group[><,]); 108 return (obj); 109 finish; NOTE: Module FUNCTION defined. 110 111 start switch_mut(s) global(nswitches); 112 n = ncol(s); 113 do i = 1 to nswitches; 114 k1 = int(uniform(123456789)*n) + 1; 115 k2 = int(uniform(123456789)*n) + 1; 116 if k1^=k2 then do; 117 temp=s[k2]; 118 s[k2] = s[k1]; 119 s[k1] = temp; 120 end; 121 end; 122 finish; NOTE: Module SWITCH_MUT defined. 123 124 start uniform_cross(child1, child2, parent1, parent2) global(nrow); 125 child1 = parent1; 126 child2 = parent2; 127 do i = 1 to ncol(parent1); 128 r = uniform(123456789); 129 if r<0.5 then do; 130 child1[i] = parent2[i]; 131 child2[i] = parent1[i]; 132 end; 133 end; 134 finish; NOTE: Module UNIFORM_CROSS defined. 135 136 137 ncol=ncol(age); 138 nrow=nrow(age); 139 obs=t(1:nrow); 140 group=4; 140! /* <--Change it(divide into 4 groups)*/ 141 142 143 nswitches = 4; 144 encoding=j(2,nrow,1); 145 encoding[2,]=group; 146 147 id=gasetup(2,nrow,123456789); 148 call gasetobj(id,0,"function"); 149 call gasetcro(id,0.95,0,"uniform_cross"); 150 call gasetmut(id,0.95,0,"switch_mut"); 151 call gasetsel(id,100,1,1); 152 call gainit(id,1000,encoding); ERROR: Overflow error in -. operation : - at line 107 column 23 operands : _TEM1001, _TEM1002 _TEM1001 1 row 84 cols (numeric) _TEM1002 1 row 84 cols (numeric) statement : ASSIGN at line 107 column 1 traceback : module FUNCTION at line 107 column 1 operation : GAINIT at line 152 column 1 operands : id, *LIT1031, encoding id 1 row 1 col (numeric) 0 *LIT1031 1 row 1 col (numeric) 1000 encoding 2 rows 1286 cols (numeric) statement : CALL at line 152 column 1 153 154 155 niter = 10000; 156 do i = 1 to niter; 157 call garegen(id); 158 call gagetval(value, id); 159 end; ERROR: Genetic Algorithm must be initialized with CALL GAINIT ERROR: Execution error as noted previously. (rc=1000) operation : GAREGEN at line 157 column 1 operands : id id 1 row 1 col (numeric) 0 statement : CALL at line 157 column 1 statement : CALL at line 157 column 1 160 call gagetmem(mem, value, id, 1); ERROR: Genetic Algorithm must be initialized with CALL GAINIT ERROR: Execution error as noted previously. (rc=1000) operation : GAGETMEM at line 160 column 1 operands : id, *LIT1034 id 1 row 1 col (numeric) 0 *LIT1034 1 row 1 col (numeric) 1 statement : CALL at line 160 column 1 statement : CALL at line 160 column 1 161 162 groups=t(mem); ERROR: (execution) Matrix has not been set to a value. operation : T at line 162 column 9 operands : mem mem 0 row 0 col (type ?, size 0) statement : ASSIGN at line 162 column 1 163 create group var {groups}; 164 append; WARNING: All data set variables are unvalued. No APPEND done. statement : APPEND at line 164 column 1 165 close; NOTE: Closing WORK.GROUP NOTE: The data set WORK.GROUP has 0 observations and 1 variables. 166 print value[l = "Min Value:"] ; ERROR: Matrix value has not been set to a value. statement : PRINT at line 166 column 1 167 call gaend(id); 168 quit; NOTE: Exiting IML. NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE IML used (Total process time): real time 12.58 seconds cpu time 1.23 seconds 169 170 171 data out.FinalAssignwithSamples2; 172 merge group out.FinalAssignwithSamples; 173 run; NOTE: There were 0 observations read from the data set WORK.GROUP. NOTE: There were 1286 observations read from the data set OUT.FINALASSIGNWITHSAMPLES. NOTE: The data set OUT.FINALASSIGNWITHSAMPLES2 has 1286 observations and 87 variables. NOTE: DATA statement used (Total process time): real time 1.99 seconds cpu time 1.60 seconds 174 proc summary data=out.FinalAssignwithSamples2 nway; 175 class groups; 176 var _numeric_; 177 output out=sum(drop=_:) sum=; 178 run; WARNING: Variable GROUPS already exists on file WORK.SUM. WARNING: The duplicate variables will not be included in the output data set of the output statement number 1. WARNING: A class or frequency variable is missing on every observation. NOTE: There were 1286 observations read from the data set OUT.FINALASSIGNWITHSAMPLES2. NOTE: The data set WORK.SUM has 0 observations and 85 variables. NOTE: PROCEDURE SUMMARY used (Total process time): real time 0.93 seconds cpu time 0.78 seconds 179 proc print noobs;run; NOTE: No observations in data set WORK.SUM. NOTE: PROCEDURE PRINT used (Total process time): real time 0.00 seconds cpu time 0.01 seconds 180 proc print data=out.FinalAssignwithSamples2 noobs;run; NOTE: There were 1286 observations read from the data set OUT.FINALASSIGNWITHSAMPLES2. NOTE: PROCEDURE PRINT used (Total process time): real time 16.22 seconds cpu time 14.89 seconds ##- Please type your reply above this line. Simple formatting, no attachments. -##
... View more