Computed theoretical power for N=100 and N=200 scenarios
This commit is contained in:
452
Modules/ado/plus/s/seeout.ado
Normal file
452
Modules/ado/plus/s/seeout.ado
Normal file
@ -0,0 +1,452 @@
|
||||
*! seeout version 1.2.3 21oct2009 by roywada@hotmail.com
|
||||
*! (to accompany -outreg2-)
|
||||
|
||||
program define seeout
|
||||
version 7.0
|
||||
|
||||
syntax [using] [,LABel LABelA(passthru) ]
|
||||
|
||||
if `"`using'"'~="" {
|
||||
*** clean up file name, attach .txt if no file type is specified
|
||||
local rest "`using'"
|
||||
* strip off "using"
|
||||
gettoken part rest: rest, parse(" ")
|
||||
* strip off quotes
|
||||
gettoken first second: rest, parse(" ")
|
||||
cap local rest: list clean local(rest)
|
||||
|
||||
local rabbit `"""'
|
||||
if index(`"`using'"', ".")==0 {
|
||||
local file = `"`rabbit'`first'.txt`rabbit'"'
|
||||
local using = `"using `file'"'
|
||||
}
|
||||
else {
|
||||
local file = `"`rabbit'`first'`rabbit'"'
|
||||
local using = `"using `file'"'
|
||||
}
|
||||
|
||||
*** seeout the output
|
||||
*local cl `"{stata `"seeout `pref'"': seeout `pref'}"'
|
||||
*di as txt `"`cl'"'
|
||||
seeing `using', `label'
|
||||
}
|
||||
|
||||
else {
|
||||
*** read the set preference if not out of date
|
||||
|
||||
* NOTE: `0' is written over below
|
||||
cap quietly findfile outreg2.pref
|
||||
tempname myfile
|
||||
cap file open `myfile' using `"`r(fn)'"', read text
|
||||
cap file read `myfile' date
|
||||
cap file read `myfile' pref
|
||||
cap file read `myfile' options
|
||||
cap file close `myfile'
|
||||
|
||||
if "`date'"== "`c(current_date)'" {
|
||||
*** seeout the output
|
||||
|
||||
if index(`"`options'"', "label")~=1 & index(`"`options'"', `"label("')==0 {
|
||||
tokenize `"`options'"'
|
||||
local count: word count `options'
|
||||
if `count'~=0 {
|
||||
local test 0
|
||||
forval num=1/`count' {
|
||||
if `"``num''"'=="label" {
|
||||
local label label
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} /* ? */
|
||||
gettoken first file: pref
|
||||
|
||||
*** codes recycled from outreg2:
|
||||
* strip off quotes and extension
|
||||
gettoken first second: file, parse(" ")
|
||||
local temp = `"`first'"'
|
||||
|
||||
local next_dot = index(`"`temp'"',".")
|
||||
local next_strip = substr(`"`temp'"',1,`=`next_dot'-1')
|
||||
local strippedname = substr(`"`temp'"',1,`=`next_dot'-1')
|
||||
|
||||
* check for more dots
|
||||
local change 0
|
||||
while `change'==0 {
|
||||
local temp = substr(`"`temp'"',`=`next_dot'+1',.)
|
||||
if index(`"`temp'"', ".")~=0 {
|
||||
local next_dot = index(`"`temp'"',".")
|
||||
local next_strip = substr(`"`temp'"',1,`=`next_dot'-1')
|
||||
local strippedname = `"`strippedname'.`next_strip'"'
|
||||
}
|
||||
else {
|
||||
* no change
|
||||
local last_strip = `"`temp'"'
|
||||
local change 1
|
||||
}
|
||||
}
|
||||
|
||||
*** check for manual rtf doc xlm xls csv extensions
|
||||
if `"`last_strip'"'=="rtf" | `"`last_strip'"'=="doc" {
|
||||
local word "word"
|
||||
|
||||
local file = `"`rabbit'`strippedname'.txt`rabbit'"'
|
||||
local using = `"using `file'"'
|
||||
local wordFile "`last_strip'"
|
||||
}
|
||||
if `"`last_strip'"'=="xls" | `"`last_strip'"'=="xml" | `"`last_strip'"'=="xlm" | `"`last_strip'"'=="csv" {
|
||||
local excel "excel"
|
||||
|
||||
local file = `"`rabbit'`strippedname'.txt`rabbit'"'
|
||||
local using = `"using `file'"'
|
||||
local excelFile "`last_strip'"
|
||||
}
|
||||
if `"`last_strip'"'=="tex" {
|
||||
if `"`tex1'"'=="" {
|
||||
local tex "tex"
|
||||
}
|
||||
|
||||
local file = `"`rabbit'`strippedname'.txt`rabbit'"'
|
||||
local using = `"using `file'"'
|
||||
local texFile "`last_strip'"
|
||||
}
|
||||
|
||||
|
||||
if `"`last_strip'"'=="txt" {
|
||||
seeing `pref', `label'
|
||||
}
|
||||
else {
|
||||
if "`using'"=="" {
|
||||
di in red "must specify using file"
|
||||
exit 198
|
||||
}
|
||||
seeing using `using', `label'
|
||||
* similar to the other one except the clickable text
|
||||
*local cl `"{stata `"seeout `pref'"': seeout `pref'}"'
|
||||
*di as txt `"`cl'"'
|
||||
}
|
||||
else {
|
||||
di in red "must specify the filename (the last preference has expired)"
|
||||
exit 100
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
|
||||
***********************
|
||||
|
||||
|
||||
program define seeing
|
||||
version 7.0
|
||||
|
||||
* invisible to Stata 7
|
||||
local Version7 ""
|
||||
cap local Version7 `c(stata_version)'
|
||||
|
||||
if "`Version7'"=="" {
|
||||
* it is version 7
|
||||
*noi di in yel "limited functions under Stata 7"
|
||||
}
|
||||
else if `Version7'>=8.2 {
|
||||
version 8.2
|
||||
}
|
||||
|
||||
quietly{
|
||||
* syntax using/[, Clear]
|
||||
syntax using [, LABel LABelA(string) ]
|
||||
|
||||
preserve
|
||||
|
||||
insheet `using', nonames clear
|
||||
describe, short
|
||||
|
||||
|
||||
* number of columns
|
||||
local numcol = `r(k)'
|
||||
|
||||
tempvar blanks rowmiss
|
||||
count if v1=="EQUATION"
|
||||
if `r(N)'~=0 {
|
||||
local eqPlace 1
|
||||
local varPlace 2
|
||||
count if v3=="LABELS"
|
||||
if `r(N)'~=0 {
|
||||
local labPlace 3
|
||||
local num=4
|
||||
}
|
||||
else {
|
||||
local labPlace 0
|
||||
local num=3
|
||||
}
|
||||
}
|
||||
else {
|
||||
local eqPlace 0
|
||||
local varPlace 1
|
||||
|
||||
count if v2=="LABELS"
|
||||
if `r(N)'~=0 {
|
||||
local labPlace 2
|
||||
local num=3
|
||||
}
|
||||
else {
|
||||
local labPlace 0
|
||||
local num=2
|
||||
}
|
||||
}
|
||||
|
||||
gen int `blanks' = (trim(v`num')=="")
|
||||
forvalues col = `num'/`numcol' {
|
||||
replace `blanks' = `blanks' & (trim(v`col')=="")
|
||||
}
|
||||
|
||||
|
||||
* title rows
|
||||
local titleWide = 0
|
||||
if v1[1]~="" | v2[1]~="" {
|
||||
* there may be a title
|
||||
if `labPlace'==0 & `varPlace'==1 {
|
||||
while v1[`=`titleWide'+1']~="" & v2[`=`titleWide'+1']=="" {
|
||||
local titleWide = `titleWide'+1
|
||||
}
|
||||
}
|
||||
if `labPlace'==0 & `varPlace'==2 {
|
||||
while v2[`=`titleWide'+1']~="" & v3[`=`titleWide'+1']=="" {
|
||||
local titleWide = `titleWide'+1
|
||||
}
|
||||
}
|
||||
if `labPlace'~=0 & `varPlace'==1 {
|
||||
while v1[`=`titleWide'+1']~="" & v3[`=`titleWide'+1']=="" {
|
||||
local titleWide = `titleWide'+1
|
||||
}
|
||||
}
|
||||
if `labPlace'~=0 & `varPlace'==2 {
|
||||
while v2[`=`titleWide'+1']~="" & v4[`=`titleWide'+1']=="" {
|
||||
local titleWide = `titleWide'+1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*local VARIABLES "VARIABLES"
|
||||
* first name AFTER titles is the VARIABLES
|
||||
local content
|
||||
local num=`titleWide'+1
|
||||
local N=_N
|
||||
while `"`content'"'=="" & `num'<=`N' {
|
||||
local content=v`varPlace'[`num']
|
||||
local num=`num'+1
|
||||
}
|
||||
local VARIABLES `"`content'"'
|
||||
|
||||
replace `blanks'=0 if v1==`"`VARIABLES'"' | v1[_n-1]==`"`VARIABLES'"' | v2==`"`VARIABLES'"' | v2[_n-1]==`"`VARIABLES'"'
|
||||
|
||||
|
||||
* getting bottomBorder (the bottom border), count up
|
||||
gen rowmiss=0
|
||||
foreach var of varlist v* {
|
||||
replace rowmiss=rowmiss+1 if `var'~=""
|
||||
}
|
||||
local N=_N
|
||||
local content 1
|
||||
local num 0
|
||||
while `content'==1 & `num'<`N' {
|
||||
local content rowmiss[`=`N'-`num'']
|
||||
local num=`num'+1
|
||||
}
|
||||
* do not have to add to titleWide
|
||||
local bottomRow = `N'-`num'+1
|
||||
local bottomBorder=`bottomRow'
|
||||
|
||||
* getting halfway to headBorder (the top border), count down
|
||||
local content
|
||||
local num=`titleWide'+1
|
||||
local N=_N
|
||||
while `"`content'"'=="" & `num'<=`N' {
|
||||
local content=v`varPlace'[`num']
|
||||
local num=`num'+1
|
||||
}
|
||||
* do not have to add to titleWide
|
||||
local headRow `num'
|
||||
local headBorder=`headRow'
|
||||
|
||||
drop rowmiss
|
||||
|
||||
|
||||
* avoid counting space within each statistics row as missing
|
||||
replace `blanks'=0 if `blanks'[_n+1]==0 & `blanks'==1 & _n >`titleWide'
|
||||
|
||||
|
||||
* statistics rows
|
||||
*count if `blanks'==0
|
||||
*local bottomBorder = `r(N)'+`titleWide'
|
||||
|
||||
|
||||
* move the notes and titles to the top of a new column
|
||||
gen str5 Notes_Titles=""
|
||||
format Notes_Titles %-20s
|
||||
count if v1=="EQUATION"
|
||||
if `r(N)'==0 {
|
||||
* EQUATION column does not exist
|
||||
if `titleWide'>0 {
|
||||
forval num=1/`titleWide' {
|
||||
replace Notes_Titles=v1[`num'] in `num'
|
||||
replace v1="" in `num'
|
||||
}
|
||||
}
|
||||
|
||||
local one = 1
|
||||
local legend = v1[`bottomBorder'+`one']
|
||||
|
||||
|
||||
local place 1
|
||||
*while "`legend'"~="" {
|
||||
local N=_N
|
||||
while `place' <= `N' {
|
||||
local place=`bottomBorder'+`one'
|
||||
local legend = v1[`place']
|
||||
replace Notes_Titles="`legend'" in `=`one'+`titleWide'+1'
|
||||
if "`legend'"~="" {
|
||||
replace v1="" in `place'
|
||||
}
|
||||
local one = `one'+1
|
||||
}
|
||||
|
||||
* insert label changes here, minus 2 from c(k) for `blanks' & Notes_Titles column
|
||||
if "`label'"=="label" {
|
||||
*if ("`long'"~="long" & "`onecol'"~="onecol") | ("`long'"=="long" & "`onecol'"=="onecol") {
|
||||
replace v2=v1 if v2==""
|
||||
drop v1
|
||||
describe, short
|
||||
forval num=1/`=`r(k)'-2' {
|
||||
ren v`=`num'+1' v`num'
|
||||
}
|
||||
|
||||
* change LABELS to VARIABLES
|
||||
replace v1=`"`VARIABLES'"' if v1=="LABELS"
|
||||
*}
|
||||
local label_adjust "-1"
|
||||
}
|
||||
|
||||
* change the string length
|
||||
gen str5 temp=""
|
||||
replace temp=v1
|
||||
drop v1
|
||||
ren temp v1
|
||||
order v1
|
||||
* format
|
||||
foreach var of varlist v1 {
|
||||
local _format= "`: format `var''"
|
||||
local _widths=substr("`_format'",2,length(trim("`_format'"))-2)
|
||||
format `var' %-`_widths's
|
||||
}
|
||||
}
|
||||
else {
|
||||
* equation column exists
|
||||
if `titleWide'>0 {
|
||||
forval num=1/`titleWide' {
|
||||
replace Notes_Titles=v2[`num'] in `num'
|
||||
replace v2="" in `num'
|
||||
}
|
||||
}
|
||||
|
||||
local one = 1
|
||||
local legend = v2[`bottomBorder'+`one']
|
||||
while "`legend'"~="" {
|
||||
local place=`bottomBorder'+`one'
|
||||
local legend = v2[`place']
|
||||
replace Notes_Titles="`legend'" in `=`one'+`titleWide'+1'
|
||||
if "`legend'"~="" {
|
||||
replace v2="" in `place'
|
||||
}
|
||||
local one = `one'+1
|
||||
}
|
||||
|
||||
* insert label changes here, minus 2 from c(k) for `blanks' & Notes_Titles column
|
||||
if "`label'"=="label" {
|
||||
*else if "`long'"~="long" & "`onecol'"=="onecol" {
|
||||
replace v3=v2 if v3==""
|
||||
drop v2
|
||||
describe, short
|
||||
forval num=2/`=`r(k)'-2' {
|
||||
ren v`=`num'+1' v`num'
|
||||
}
|
||||
|
||||
* change LABELS to VARIABLES
|
||||
replace v2=`"`VARIABLES'"' if v2=="LABELS"
|
||||
*}
|
||||
local label_adjust "-1"
|
||||
}
|
||||
|
||||
|
||||
* change the string length
|
||||
gen str5 temp=""
|
||||
replace temp=v2
|
||||
drop v2
|
||||
ren temp v2
|
||||
order v1 v2
|
||||
* format
|
||||
foreach var of varlist v1 v2 {
|
||||
local _format= "`: format `var''"
|
||||
local _widths=substr("`_format'",2,length(trim("`_format'"))-2)
|
||||
format `var' %-`_widths's
|
||||
}
|
||||
}
|
||||
|
||||
* clean up
|
||||
*egen `rowmiss'=rowmiss(_all)
|
||||
* rowmiss option not available in 8.2 or 8.0, do it by hand
|
||||
|
||||
gen `rowmiss'=0
|
||||
foreach var of varlist _all {
|
||||
if "`var'"~="`rowmiss'" & "`var'"~="`blanks'" {
|
||||
replace `rowmiss'=1+`rowmiss' if `var'==""
|
||||
}
|
||||
}
|
||||
|
||||
*drop if `rowmiss'==`numcol'+1
|
||||
|
||||
* adjust to handle label column droppings
|
||||
*drop if `rowmiss'==`numcol'+1 & `blanks'==1
|
||||
|
||||
* fix blanks==1 for groupvar( )
|
||||
count if `blanks'==1
|
||||
local rN=`r(N)'+1
|
||||
forval num=1/`rN' {
|
||||
replace `blanks'=0 if `blanks'[_n+1]==0 & `blanks'==1
|
||||
}
|
||||
|
||||
drop if `rowmiss'==`numcol'+1 `label_adjust' & `blanks'==1
|
||||
drop `blanks' `rowmiss'
|
||||
|
||||
browse
|
||||
|
||||
if "`Version7'"=="" {
|
||||
* it is version 7
|
||||
}
|
||||
else if `Version7'>=11.0 {
|
||||
noi di in yel "Hit Enter to continue" _request(junk)
|
||||
}
|
||||
|
||||
*restore, preserve
|
||||
}
|
||||
end /* end of seeing */
|
||||
|
||||
exit
|
||||
|
||||
|
||||
|
||||
* versions
|
||||
1.1 replaced rowmiss option in egen, which is not available in 8.2
|
||||
1.1.1 disabled -restore, preserve- as redundant waste of time
|
||||
fixed seeing/seeout: handles blank space in stat(aster)
|
||||
label does not show
|
||||
no longer produces a seeout blue text whenever a seeout blue text was clicked
|
||||
1.1.2 the shorthand form of seeout hides label
|
||||
1.1.3 the shorthand form of seeout hides label: `label' is actually read from outreg2_pref.ado
|
||||
1.2.0 down to version 7.0; -describe, short- instead of c(k)
|
||||
if `"`using'"'~="": needed the compound quotes
|
||||
VARIABLES is flexibly named
|
||||
1.2.1 Apr2009 handles xls, doc, etc, that was left attached to file names in pref_ado
|
||||
1.2.2 04Aug2009 a fix for asynchronoous data browser in -seeing- for version 11
|
||||
1.2.3 21oct2009 outreg2_pref should have been replaced with outreg2.pref earlier
|
||||
|
Reference in New Issue
Block a user