Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: once again -reshape- and labels


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: once again -reshape- and labels
Date   Mon, 16 Jun 2008 17:59:31 +0100

You don't say what your problem is beyond "I couldn't get it to work",
so I am not 
clear quite what kind of diagnosis or guidance you seek. 

Also, the example here is first in terms of Ax1 Ax2 Ax3, then in terms
of Ax1 Bx1 Cx1. 
We have to guess what you mean. I'll take the first. 

As your variable label is the same, no loop over variables is necessary
to retrieve it. 

Suppose we have 

. l

     +-----------------+
     | Ax1   Ax2   Ax3 |
     |-----------------|
  1. |   1     4     7 |
  2. |   2     5     8 |
  3. |   3     6     9 |
     +-----------------+

. d

Contains data
  obs:             3                          
 vars:             3                          
 size:            21 (99.9% of memory free)
------------------------------------------------------------------------
------
              storage  display     value
variable name   type   format      label      variable label
------------------------------------------------------------------------
------
Ax1             byte   %8.0g                  Ax
Ax2             byte   %8.0g                  Ax
Ax3             byte   %8.0g                  Ax
------------------------------------------------------------------------
------
Sorted by:  

. local varlab : var lab Ax1

. gen i = _n

. reshape long Ax , i(i)
(note: j = 1 2 3)

Data                               wide   ->   long
------------------------------------------------------------------------
-----
Number of obs.                        3   ->       9
Number of variables                   4   ->       3
j variable (3 values)                     ->   _j
xij variables:
                            Ax1 Ax2 Ax3   ->   Ax
------------------------------------------------------------------------
-----

. label var Ax "`varlab'"

. d

Contains data
  obs:             9                          
 vars:             3                          
 size:            90 (99.9% of memory free)
------------------------------------------------------------------------
------
              storage  display     value
variable name   type   format      label      variable label
------------------------------------------------------------------------
------
i               float  %9.0g                  
_j              byte   %9.0g                  
Ax              byte   %8.0g                  Ax
------------------------------------------------------------------------
------
Sorted by:  i  _j
     Note:  dataset has changed since last saved

If you have Bx*, Cx* as well, the code needs extension but I don't think
new principles come into play. 

Nick 
[email protected] 

Andrea Bennett

I thought I should be able to succeed myself in doing a -reshape long-  
and preserve the variable's label, e.g. I have Ax1 Ax2 Ax3 with every  
Ax1-Ax3 having the very same label, but even though having a look at
http://www.stata.com/support/faqs/data/variables.html 
  and trying to borrow from there, I couldn't get it to work. I now  
have stored the first variable's label of each variable I need to  
reshape (e.g. the label for Ax1 Bx1 Cx1) but cannot get it applied to  
the new variables (after reshape) which are called Ax, Bx and Cx.

My code so far:

local lrshp "Ax1 Bx1 Cx1"

foreach v of var `lrshp' {
	local l`v' : variable label `v'
  	if `"`l`v''"' == "" {
  		local l`v' "`v'"
  	}
}


Does any of you macro masters have a good line of help?

P.S. If someone got an idea for automatically renaming Ax, Bx and Cx  
to A, B, and C, that would be great, too.

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



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index