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 ../..