Statalist The Stata Listserver

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

Re: st: How to create a new variable which contains the responsefrom anot=

From   Klaus Haberkern <>
To   Chiung-Ya Tang <>
Subject   Re: st: How to create a new variable which contains the responsefrom anot=
Date   Tue, 06 Mar 2007 12:27:51 +0100

Hi Chiungya,

if you have no more than two members in a group, the following syntax may work
with "[_n+1]" you can refers to the case in the following line

It's important that the data are sorted as in your example:

Group member V1
=E3=80=801 1 3.2
=E3=80=801 2 4.5
=E3=80=802 1 3.1
=E3=80=802 2 3.3
=E3=80=803 1 .
=E3=80=803 2 2.3

gen v2=.

*[_n+1] taking the values from the next line (that is person in the group) in the data, [by group, sort] only when line below represents person in the same group
by group, sort: replace v2=v1[_n+1] if v2==.

*[_n-1] taking the values from the line before in the data, [by group] only when line above represents a person of the same group
by group: replace v2=v1[_n-1] if v2==.

If you have more persons in a group you have to make sure, that you refer to the right case in a group.
For example, if you analyse families, and you want to relate both parents, but not the children in a household, you have to know, who is the partner of the respondent: e.g. vars id (own id) and pid (id of partner)

sort group id
by group: replace v2=v1[_n+1] if v2==. & pid==id[_n+1]
by group, sort: replace v2=v1[_n-1] if v2==. & pid==id[_n-1]

if difference between id and pid >1 or <-1 you have to gone on like that

by group: replace v2=v1[_n+2] if v2==. & pid==id[_n+2]

Hope this helps,


Klaus Haberkern
Soziologisches Institut
Universität Zürich
Andreasstrasse 15
CH-8050 Zürich

Tel.: ++41-(0)44-635 23 43

Chiung-Ya Tang schrieb:

her member
Date: Sun, 4 Mar 2007 20:06:50 -0500
Message-ID: <002301c75ec2$8ebe21c0$6401a8c0@Saturdaynight>
MIME-Version: 1.0
Content-Type: text/plain;
X-Mailer: Microsoft Office Outlook 11
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028
Thread-Index: Acdewo3xDbzlOHAwQ/aMhHOZCSj6qg=3D=3D
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by
id l2517LJ10855
Precedence: bulk

I am learning STATA and would like to use it to analyze a set of dyadic dat=
a. The data is as following:

Group member V1
=E3=80=801 1 3.2
=E3=80=801 2 4.5
=E3=80=802 1 3.1
=E3=80=802 2 3.3
=E3=80=803 1 .
=E3=80=803 2 2.3

I wish to generate a new variable--V2 in which responses from V1 are exchan=
ged within a group. So, it should look like this:

Group member V1 V2
=E3=80=801 1 3.2 4.5
=E3=80=801 2 4.5 3.2
=E3=80=802 1 3.1 3.3
=E3=80=802 2 3.3 3.1
=E3=80=803 1 . 2.3
=E3=80=803 2 2.3 .

I searched commands as well information from Statalist archives but still h=
aven't figured out how to do that correctly. While keeping learning new com=
mands, I definitely appreciate any help from you. Thank you.


* For searches and help try:

*   For searches and help try:

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