How to edit a codebook like this? I mean, is it formed by editing within Stata commands or from other software (Word or Latex) ?
-
Login or Register
- Log in with
clear
sa codebook.dta, replace emptyok
sysuse auto, clear
keep mpg price for rep78
lab def rep78 1 "test" 2 "test2" 3 "test3" 4 "test4" 5 "test5", modify
lab val rep78 rep78
**would need to add some code to deal with string or unlabeled categorical vars if they exist
loc z = 1
foreach v of varlist * {
preserve
g lab = `"`:var lab `v''"'
g var = `"`v'"'
**how many values
loc n
qui distinct `v'
loc n `r(ndistinct)'
loc k = 1
if `n' <= 10 & !mi(`n') { //categorical, assumes vallabs
g val1 = ""
g val2 = .
qui levelsof `v', loc(l) //add missing?
loc k = `r(r)'
loc o = 1
foreach a in `r(levels)' {
replace val2 = `a' in `o'
loc vl `"`:val lab `v''"'
replace val1 = `"`:lab `vl' `a''"' in `o'
loc `++o'
}
replace lab = "" in 2/l
}
if `n' >10 & !mi(`n') { //continuous
qui su `v', d
loc llabs `" From `r(min)' to `r(max)' "'
g val1 = "Record in order"
g val2 = `'"`llabs'"'
replace var = "" in 2/l
}
keep lab var val*
keep in 1/`k'
*for sorting
g sort = `z'
loc `++z'
cap tostring val2, replace
append using codebook.dta
sa codebook.dta, replace
restore
}
u codebook, clear
sort sort val2
l, noobs sepby(var)
Comment