[R] creating lagged variable in panel data

Alok Bohara, PhD bohara at unm.edu
Thu Aug 30 04:23:14 CEST 2012


Sorry,  this is what I used :

f <- function(x) {
		wage <- ts(x$wage, start = x$year[1])
		idx <- seq(length = length(wage))
		wages <- cbind(wage, wage.lag1 = lag(wage, -1))[idx,]
		cbind(x, wages)
	}

	result <- do.call("rbind", by(A, A$person, f))
	result


Alok


On 8/29/2012 7:43 PM, R. Michael Weylandt wrote:
> On Wed, Aug 29, 2012 at 8:20 PM, Alok Bohara, PhD <bohara at unm.edu> wrote:
>> Thanks for the input.   I wanted to avoid counting the column number.  In
>> any case,  in the script -- wage.lag1 = lag(wage, -1) seems to do the trick.
> The important thing is that "4" in my example below can be any
> computable expression: e.g., if you want the last column
>
> colnames(dats)[NCOL(dats)] <- ...
>
> Alternatively, you can change the name at construction, but I couldn't
> give you a hint there since you didn't tell us how you went about
> adding the column.
>
> Note something like this though:
>
> dts <- data.frame(x = 1:5, y = letters[5:1])
>
> dts2 <- cbind(dts, z = rnorm(5))
>
> print(dts2)
>
> Cheers,
> Michael
>> Alok
>>
>> On 8/29/2012 12:29 PM, R. Michael Weylandt <michael.weylandt at gmail.com>
>> wrote:
>>> Of course:
>>>
>>> colnames(dats)[4] <- "new name"
>>>
>>> M
>>>
>>> On Aug 29, 2012, at 9:34 AM, "Alok K Bohara, PhD" <bohara at unm.edu> wrote:
>>>
>>>> Hi
>>>>
>>>> I found an example in R to create a lagged panel data set which works
>>>> fine.  The only problem is that it adds the lagged variable as follows
>>>>
>>>> wage2.dat
>>>>
>>>>            year person        wage        lag(wage, -1)
>>>> 1.1  1980      1 -0.75843997            NA
>>>> 1.2  1981      1  0.27233048   -0.75843997
>>>> 1.3  1982      1 -1.58335767    0.27233048
>>>> 1.4  1983      1  0.36805926   -1.58335767
>>>> 1.5  1984      1 -0.52312153    0.36805926
>>>> 2.6  1980      2 -0.53559110            NA
>>>> 2.7  1981      2 -0.94935350   -0.53559110
>>>> 2.8  1982      2  0.10486688   -0.94935350
>>>> 2.9  1983      2 -0.50266443    0.10486688
>>>> 2.10 1984      2 0.14644024   -0.50266443
>>>> .
>>>> .
>>>>
>>>> Is there anyway  I could rename the last column      wag.lag1? Thanks.
>>>>
>>>>
>>>> Best,
>>>> Alok
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>> --
>> Alok K. Bohara, Ph.D.
>> Professor
>> Department of Economics
>> MSC 05 3060
>> 1 University of New Mexico
>> Albuquerque, NM 87131-0001, USA
>> Ph: 505-277-5903/5304(w)
>> Fax:505-277-9445
>> email: bohara at unm.edu
>> http://www.unm.edu/~econ/faculty/professors.html
>> Nepal Study Center: http://nepalstudycenter.unm.edu
>>


-- 
Alok K. Bohara, Ph.D.
Professor
Department of Economics
MSC 05 3060
1 University of New Mexico
Albuquerque, NM 87131-0001, USA
Ph: 505-277-5903/5304(w)
Fax:505-277-9445
email: bohara at unm.edu
http://www.unm.edu/~econ/faculty/professors.html
Nepal Study Center: http://nepalstudycenter.unm.edu




More information about the R-help mailing list