Thanks for your help and sorry for the ambiguity in my explanation.
I was able to construct a foreach command that generates the same
results as your suggestions.
But the results from tabstat are displayed like the following;
variable | mean N max min p50
-------------+--------------------------------------------------
telephone | 1.960888 2659 2 1 2
----------------------------------------------------------------
variable | mean N max min p50
-------------+--------------------------------------------------
telephoneno | 1.25 104 5 1 1
----------------------------------------------------------------
variable | mean N max min p50
-------------+--------------------------------------------------
telephonesh | 1.929293 99 2 1 2
----------------------------------------------------------------
variable | mean N max min p50
-------------+--------------------------------------------------
telephones~o | 4.428571 7 20 1 2
----------------------------------------------------------------
But what I wanted to do was actually producing following results by loop;
variable | mean N max min p50
-------------+--------------------------------------------------
telephone | 1.960888 2659 2 1 2
telephoneno | 1.25 104 5 1 1
telephonesh | 1.929293 99 2 1 2
telephones~o | 4.428571 7 20 1 2
----------------------------------------------------------------
variable | mean N max min p50
-------------+--------------------------------------------------
clock | 1.285446 2659 2 1 1
clockno | 1.996839 1898 15 1 2
----------------------------------------------------------------
i.e. displaying the results from tabstat by the set of variables that
shares the same prefix.
Of course, the above examples were achieved by writing a single
command line for each group.
But as I have many such variables, I would somehow want to do this
with foreach command(s).
Yusuke
At 06:30 PM 9/28/2006, you wrote:
>I am not sure whether I understand exactly what you want to do, but
>this may help.
>
>1) You could loop over variable lists, along the following lines:
>
>foreach first of varlist telephone* clock* cltv* bicycle* {
> tabstat `first', s(mean n max min med) c(s)
>}
>
>
>2) If the order matters, you could write a more complicated loop,
>maybe like this:
>
>foreach first of varlist telephone clock cltv bicycle {
> foreach second in no sh shno {
> tabstat `first', s(mean n max min med) c(s)
> capture tabstat `first'`second', s(mean n max min med) c(s)
>}
>}
>
>(The capture is necessary because not all variables are included
>with the same suffixes).
>
>I don't know what you are trying to achieve with this, but there may
>be more straightforward ways to do this. -collapse- and -reshape-
>may be useful for you (again, depending on what you want to do).
>
>HTH,
>Philipp
>
>
>Yusuke Taishi wrote:
>>I have a data set that contains variables like;
>>telephone
>>telephoneno
>>telephonesh
>>telephoneshno
>>clock
>>clockno
>>cltv
>>cltvno
>>bicycle
>>bicycleno
>>bicyclesh
>>bicycleshno
>>and many more. As you can see, they take the form of ;
>>"name of item"
>>"name of item"no; or
>>["name of item"sh / "name of item"shno, whenever appropriate].
>>I would like to tell STATA to look at the names of variables and execute;
>>tabstat `var', s(mean n max min med) c(s)
>>only for the set of variables that contains the same prefix, and
>>loop over the
>>next set of variables, and then next, and so on.
>>I tried to embed ifcmd or subinstr command in the loop but haven't been able
>>to pull it off. I feel like I'm missing out something very basic.
>>Thanks in advance for your help.
>>Yusuke
>>*
>>* For searches and help try:
>>* http://www.stata.com/support/faqs/res/findit.html
>>* http://www.stata.com/support/statalist/faq
>>* http://www.ats.ucla.edu/stat/stata/
>*
>* For searches and help try:
>* http://www.stata.com/support/faqs/res/findit.html
>* http://www.stata.com/support/statalist/faq
>* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/