I am trying to learn Stata and. have been racking my brains over this - it is code I have copied and pasted and used successfully multiple times and suddenly it needs a " )" somewhere...I have re-copied and re-pasted from programs which have run successfully but still doesn't work. Would love some help if anyone has time:
Here is the code:
gen flag = 0
foreach v of varlist I10_DX1 - I10_DX40 {
icd10cm generate flag_`v' = `v', range(O10.011 O10.012 O10.013 O10.019 O10.02 O10.03 O10911 O10912 O10913 O10919 O1092 O1093 O161 O162 O164 O165 O169 O10019 O1002 O10111 O10112 O10113 O10119 O1012 O1013 O10211 O10212 O10213 O10219 O1022 O1023 O10311 O10312 O10313 O10319 O1032 O1033 O10411 O10412 O10413 O10419 O1042 O1043
O10911 O10912 O10913 O10919 O1092 O1093 O111 O112 O113 O114 O115 O119 O131 O132 O133 O134 O135 O139 O1400 O1402 O1405 O1410/O1415 O1420 O1422 O1423 O1424 O1425 O1490 O1492
O1493 O1494 O1495 O1500 O1502 O1503 O151 O152 O159 O1002 O1042 O1092 O114 O134 O164 O1043 O1093 O115 O135 O165)
replace flag = flag_`v' if flag_`v' > flag & flag_`v' != .
}
***gen new max & totals for this ICD range
egen max1=rowmax(flag_I10_DX*)
tab max1, m
egen total1=rowtotal(flag_I10_DX*)
tab total1, m
gen codes1 =I10_DX1 if flag_I10_DX1 == 1
foreach v of varlist I10_DX1 - I10_DX30 {
replace codes1 = `v"' if flag_`v' == 1
}
tab codes1, m
Here is the output/error message:
. gen flag = 0
. foreach v of varlist I10_DX1 - I10_DX40 {
2. icd10cm generate flag_`v'
> = `v', range(O10.011 O10.012 O10.013 O10.019 O1
> 0.02 O10.03 O10911 O10912 O10913 O10919 O1092 O1
> 093 O161 O162 O164 O165 O169 O10019 O1002 O10111
> O10112 O10113 O10119 O1012 O1013 O10211 O10212
> O10213 O10219 O1022 O1023 O10311 O10312 O10313 O
> 10319 O1032 O1033 O10411 O10412 O10413 O10419 O1
> 042 O1043
3. O10911 O10912 O10913 O10919 O1092 O1093 O111
> O112 O113 O114 O115 O119 O131 O132 O133 O134 O13
> 5 O139 O1400 O1402 O1405 O1410/O1415 O1420 O1422
> O1423 O1424 O1425 O1490 O1492
4. O1493 O1494 O1495 O1500 O1502 O1503 O151 O152
> O159 O1002 O1042 O1092 O114 O134 O164 O1043 O10
> 93 O115 O135 O165)
5. replace flag = flag_`v' if f
> lag_`v' > flag & flag_`v' != .
6. }
) required
r(100);
Here is the code:
gen flag = 0
foreach v of varlist I10_DX1 - I10_DX40 {
icd10cm generate flag_`v' = `v', range(O10.011 O10.012 O10.013 O10.019 O10.02 O10.03 O10911 O10912 O10913 O10919 O1092 O1093 O161 O162 O164 O165 O169 O10019 O1002 O10111 O10112 O10113 O10119 O1012 O1013 O10211 O10212 O10213 O10219 O1022 O1023 O10311 O10312 O10313 O10319 O1032 O1033 O10411 O10412 O10413 O10419 O1042 O1043
O10911 O10912 O10913 O10919 O1092 O1093 O111 O112 O113 O114 O115 O119 O131 O132 O133 O134 O135 O139 O1400 O1402 O1405 O1410/O1415 O1420 O1422 O1423 O1424 O1425 O1490 O1492
O1493 O1494 O1495 O1500 O1502 O1503 O151 O152 O159 O1002 O1042 O1092 O114 O134 O164 O1043 O1093 O115 O135 O165)
replace flag = flag_`v' if flag_`v' > flag & flag_`v' != .
}
***gen new max & totals for this ICD range
egen max1=rowmax(flag_I10_DX*)
tab max1, m
egen total1=rowtotal(flag_I10_DX*)
tab total1, m
gen codes1 =I10_DX1 if flag_I10_DX1 == 1
foreach v of varlist I10_DX1 - I10_DX30 {
replace codes1 = `v"' if flag_`v' == 1
}
tab codes1, m
Here is the output/error message:
. gen flag = 0
. foreach v of varlist I10_DX1 - I10_DX40 {
2. icd10cm generate flag_`v'
> = `v', range(O10.011 O10.012 O10.013 O10.019 O1
> 0.02 O10.03 O10911 O10912 O10913 O10919 O1092 O1
> 093 O161 O162 O164 O165 O169 O10019 O1002 O10111
> O10112 O10113 O10119 O1012 O1013 O10211 O10212
> O10213 O10219 O1022 O1023 O10311 O10312 O10313 O
> 10319 O1032 O1033 O10411 O10412 O10413 O10419 O1
> 042 O1043
3. O10911 O10912 O10913 O10919 O1092 O1093 O111
> O112 O113 O114 O115 O119 O131 O132 O133 O134 O13
> 5 O139 O1400 O1402 O1405 O1410/O1415 O1420 O1422
> O1423 O1424 O1425 O1490 O1492
4. O1493 O1494 O1495 O1500 O1502 O1503 O151 O152
> O159 O1002 O1042 O1092 O114 O134 O164 O1043 O10
> 93 O115 O135 O165)
5. replace flag = flag_`v' if f
> lag_`v' > flag & flag_`v' != .
6. }
) required
r(100);
Comment