-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcprdlabelaurum.ado
58 lines (39 loc) · 1.13 KB
/
cprdlabelaurum.ado
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* Program for labelling values in CPRD files using CPRD lookups - PWS 2022
Syntax:
cprdlabelaurum var1 var2 ..., location("path_to_CPRD_lookups")
e.g. cprdlabelaurum gender, location("D:\Data\Lookups\CPRD Aurum")
*/
capture program drop cprdlabelaurum
program define cprdlabelaurum
version 17.0
syntax varlist, LOCation(string)
quietly {
//Save current dataset
preserve
capture import delimited "`location'/aurum_var_lookup", varnames(1) clear
if _rc {
display as error "Lookup file not found. Check directory."
error
}
keep if available == 1
drop available
//Define the lookups
quietly count
local n = `r(N)'
forvalues i = 1/`n' {
local lookup_`=variable[`i']' = "`=lookup[`i']'"
}
//Restore dataset
restore
//For each var sent to the command run cprdlabel using the lookup from
//aurum_var_lookup
foreach var of local varlist {
if "`lookup_`var''" == "" {
noisily display "Lookup not found for `var'."
}
else {
noisily cprdlabel `var', lookup(`lookup_`var'') location(`location')
}
}
} //End of quietly block
end // End program