Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Using the format of a variable to trigger different command
From
Maarten Buis <[email protected]>
To
[email protected]
Subject
Re: st: Using the format of a variable to trigger different command
Date
Thu, 26 Jul 2012 12:34:22 +0200
On Thu, Jul 26, 2012 at 12:04 PM, Erik Lenguerrand
<[email protected]> wrote:
> I would like to use the "foreach varlist" command to loop over a large list
> of variables to automate a listing of descriptive statistics.
>
> However the statistical tool to use should depend on the nature of the
> variable. (ie tab command for categorical variables and sum command for
> continuous variables)
>
> I am wondering if there is a stata command to identify the variable format,
> ie something which will generate a binary outcome like 1 if is it continuous
> variable and 0 if not.
Stata does not have the concept of continuous versus categorical
variable. However, you can define a categorical variable as containing
either only strings or only integers and having a limited number of
categories, and than create a Stata program that checks that. Below is
a quick stab at such a program:
*----------------- begin example ---------------------
clear all
program define iscat, rclass
version 12.1
syntax varname [if] [in], [ kmax(integer 20) ]
marksample touse
// check if string
capture confirm string variable `varlist'
if !_rc {
return scalar iscat = 0
exit
}
// check if intger
capture assert mod(`varlist',1) == 0 if `touse'
if _rc {
return scalar iscat = 0
exit
}
//check number of categories
qui levelsof `varlist' if `touse'
local k : word count `r(levels)'
if `k' > `kmax' {
return scalar iscat = 0
exit
}
else {
return scalar iscat = 1
exit
}
end
// try it out on some example data
sysuse auto
iscat rep78
return list
iscat mpg
return list
iscat foreign
return list
iscat headroom
return list
iscat make
return list
*------------------ end example ----------------------
Hope this helps,
Maarten
--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany
http://www.maartenbuis.nl
--------------------------
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/