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 <haberkern@soziologie.unizh.ch>
To   Chiung-Ya Tang <chiungya.tang@gmail.com>
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]
etc

Hope this helps,
Klaus

______

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

Tel.: ++41-(0)44-635 23 43
E-Mail: haberkern@soziologie.unizh.ch
Internet: www.suz.unizh.ch/ages



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;
=09charset=3D"UTF-8"
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 hsphsun2.harvard.edu=
id l2517LJ10855
Sender: owner-statalist@hsphsun2.harvard.edu
Precedence: bulk
Reply-To: statalist@hsphsun2.harvard.edu
Errors-To: statalist-owner@hsphsun2.harvard.edu
Hi,

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.

Sincerely,
Chiungya
=E3=80=80
=E3=80=80
=E3=80=80
=E3=80=80


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



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