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

# st: RE: copy values of matched cases

 From "Nick Cox" <[email protected]> To <[email protected]> Subject st: RE: copy values of matched cases Date Tue, 8 Apr 2003 11:19:58 +0100

```Patrick Sturgis
>
> I have the following problem:
>
> I have data on individuals indexed by a unique identifier, SERNO. In
> addition to SERNO, I have a vector of variables Z which are
> measurements
> taken on each individual at time t. Lastly, I have a
> variable SERNO2 which,
> for each case, gives the value of SERNO for a matched case
> in the data set.
> What I wish to do is create a second vector of variables,
> X, which copy the
> values of Z for the case indexed by SERNO2 to each value of
> SERNO. Any
> suggestions?
>

I assume that each value of -serno- occurs just once.
There are various ways to check this, e.g. -isid-,
-duplicates-.

Here is a rather tedious approach. Something more
elegant is probably possible.

+---------------------------+
| serno   z1   z2   serno2  |
|---------------------------|
1. |    11    6   11       14  |
2. |    12    7   12       13  |
3. |    13    8   13       13  |
4. |    14    9   14       12  |
+---------------------------+

Set up copies, initially missing:

foreach v of var z* {
qui gen c`v' = .
}

Get an observation number variable (serno
may already be that)

gen long obsno = _n

With -levels- from SSC,

levels serno2, local(levels)

foreach l of local levels {
su obsno if serno == `l', meanonly
foreach v of var z* {
qui replace c`v' = `v'[`r(min)'] if serno2 == `l'
}
}

That is, the look-up is done by finding
the observation number for each serial number.

l

+----------------------------------------------+
| serno   z1   z2   serno2   cz1   cz2   obsno |
|----------------------------------------------|
1. |    11    6   11       14     9    14       1 |
2. |    12    7   12       13     8    13       2 |
3. |    13    8   13       13     8    13       3 |
4. |    14    9   14       12     7    12       4 |
+----------------------------------------------+

A linked FAQ has just gone up at
http://www.stata.com/support/faqs/data/foreach.html

which in turn supersedes

http://www.stata.com/support/faqs/data/for.html

Ernest Berkhout suggested that the latter should be updated in
a Statalist posting on 24 February.

Nick
[email protected]

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