ch12.3.do open
file:script:do
# | content |
---|---|
1 [+] | * ITSP 12.3 - |
3 [+] | * capture program drop pctrange |
5 [+] | !cp pctrange.106.ado pctrange.ado |
7 [+] | type pctrange.ado |
9 [+] | /* *! pctrange v1.0.5 CFBaum 22jul2007 program pctrange, rclass byable(recall) version 10.1 syntax varlist(min=1 numeric ts) [if] [in] [, noPRINT FORmat(passthru) MATrix(string)] marksample touse quietly count if `touse' if `r(N)' == 0 { error 2000 } local nvar : word count `varlist' if `nvar' == 1 { local res range p7525 p9010 p9505 p9901 tempname `res' quietly summarize `varlist' if `touse', detail scalar `range' = r(max) - r(min) scalar `p7525' = r(p75) - r(p25) scalar `p9010' = r(p90) - r(p10) scalar `p9505' = r(p95) - r(p5) scalar `p9901' = r(p99) - r(p1) if "`print'" != "noprint" { display as result _n "Percentile ranges for `varlist', N = `r(N)'" display as txt "75-25: " `p7525' display as txt "90-10: " `p9010' display as txt "95-05: " `p9505' display as txt "99-01: " `p9901' display as txt "Range: " `range' } foreach r of local res { return scalar `r' = ``r'' } return scalar N = r(N) } else { tempname rmat matrix `rmat' = J(`nvar',5,.) local i 0 foreach v of varlist `varlist' { local ++i quietly summarize `v' if `touse', detail matrix `rmat'[`i', 1] = r(p75) - r(p25) matrix `rmat'[`i', 2] = r(p90) - r(p10) matrix `rmat'[`i', 3] = r(p95) - r(p5) matrix `rmat'[`i', 4] = r(p99) - r(p1) matrix `rmat'[`i', 5] = r(max) - r(min) local rown "`rown' `v'" } matrix colnames `rmat' = P75-P25 P90-P10 P95-P05 P99-P01 Range matrix rownames `rmat' = `rown' if "`print'" != "noprint" { local form ", noheader" if "`format'" != "" { local form "`form' `format'" } matrix list `rmat' `form' } if "`matrix'" != "" { matrix `matrix' = `rmat' } return matrix rmat = `rmat' } return local varname `varlist' end */ |
75 [+] | type testall.do |
77 [+] | cd bench/pctrange |
78 [+] | do test1 |
79 [+] | cd ../.. |
81 [+] | cd bench/pctrange |
82 [+] | do test2 |
83 [+] | cd ../.. |
85 [+] | cd bench/pctrange |
86 [+] | do test3 |
87 [+] | cd ../.. |
89 [+] | cd bench/pctrange |
90 [+] | do test4 |
91 [+] | cd ../.. |
* ITSP 12.3 - * capture program drop pctrange !cp pctrange.106.ado pctrange.ado type pctrange.ado /* *! pctrange v1.0.5 CFBaum 22jul2007 program pctrange, rclass byable(recall) version 10.1 syntax varlist(min=1 numeric ts) [if] [in] [, noPRINT FORmat(passthru) MATrix(string)] marksample touse quietly count if `touse' if `r(N)' == 0 { error 2000 } local nvar : word count `varlist' if `nvar' == 1 { local res range p7525 p9010 p9505 p9901 tempname `res' quietly summarize `varlist' if `touse', detail scalar `range' = r(max) - r(min) scalar `p7525' = r(p75) - r(p25) scalar `p9010' = r(p90) - r(p10) scalar `p9505' = r(p95) - r(p5) scalar `p9901' = r(p99) - r(p1) if "`print'" != "noprint" { display as result _n "Percentile ranges for `varlist', N = `r(N)'" display as txt "75-25: " `p7525' display as txt "90-10: " `p9010' display as txt "95-05: " `p9505' display as txt "99-01: " `p9901' display as txt "Range: " `range' } foreach r of local res { return scalar `r' = ``r'' } return scalar N = r(N) } else { tempname rmat matrix `rmat' = J(`nvar',5,.) local i 0 foreach v of varlist `varlist' { local ++i quietly summarize `v' if `touse', detail matrix `rmat'[`i', 1] = r(p75) - r(p25) matrix `rmat'[`i', 2] = r(p90) - r(p10) matrix `rmat'[`i', 3] = r(p95) - r(p5) matrix `rmat'[`i', 4] = r(p99) - r(p1) matrix `rmat'[`i', 5] = r(max) - r(min) local rown "`rown' `v'" } matrix colnames `rmat' = P75-P25 P90-P10 P95-P05 P99-P01 Range matrix rownames `rmat' = `rown' if "`print'" != "noprint" { local form ", noheader" if "`format'" != "" { local form "`form' `format'" } matrix list `rmat' `form' } if "`matrix'" != "" { matrix `matrix' = `rmat' } return matrix rmat = `rmat' } return local varname `varlist' end */ type testall.do cd bench/pctrange do test1 cd ../.. cd bench/pctrange do test2 cd ../.. cd bench/pctrange do test3 cd ../.. cd bench/pctrange do test4 cd ../..