Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AW: st: Panelvar

From   Natalie Trapp <>
Subject   Re: AW: st: Panelvar
Date   Fri, 06 Aug 2010 10:53:09 +0200

I thought my code could also work for generating an individual variable for Tobias brand names, but I noticed encode is sufficient already. I used it for my panel data set to generate a unique identification for surveyed European farms depending on certain characteristics such as region, sub region, farm type, farm size, etc. but it is redundant in the brand names case. Sorry!

On 8/6/2010 10:21 AM, Martin Weiss wrote:

I think -encode- is all Toby needs:


inp str11 brand int year
firstbrand 1990
firstbrand 1991
firstbrand 1992
secondbrand 1990
secondbrand 1991
secondbrand 1992

list, noo

//does not work
cap noi xtset brand year

//does work...
encode brand, gen(numericbrand)
xtset numericbrand year

What is the rest of your code meant to do, Natalie?


-----Ursprüngliche Nachricht-----
[] Im Auftrag von Natalie Trapp
Gesendet: Freitag, 6. August 2010 10:12
Betreff: Re: st: Panelvar

On 8/6/2010 10:00 AM, Hobst wrote:

   I have a panaldata set. I want to use the brandnames as the panel ID
variable, but obviously Stata doesnt accpet a string variable as the panel
ID var. How can i create a variable that defines a unique numbre for every
brand name so i can use it as the panel ID var for my paneldata?

Thanks a lot for your help.


Hi Toby,

I would first encode the string variable:

*encode varname, generate(newvarname)

then I would use "forvalues"

*sort  newvarname
*gen individual = .
*gen newvarname_lag = newvarname[_n-1]
*local number = 1
*replace individual = `number'  in 1
*local anzahl = _N
*forvalues i = 2/`anzahl' {
*replace individual = `number'  + 1 in `i'
*replace individual = `number'  if newvarname== newvarname_lag  in `i'
*local number = individual[`i']
*drop  newvarname_lag

I am sorry, there is most probably a much more simple way to do it, but
I wrote this when I had to identify individuals over more than one
variable. I hope this helps you.


*   For searches and help try:

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