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
creating lagged variable in panel data
6 messages · Alok K Bohara, PhD, michael.weylandt at gmail.com (R. Michael Weylandt, arun +2 more
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.
HI, Try this: wage2.dat<-read.table(text=" ? year person?? wage??????? lag(wage,-1) ? 1980????? 1 -0.75843997??????????? NA ? 1981????? 1? 0.27233048? -0.75843997 ? 1982????? 1 -1.58335767??? 0.27233048 ? 1983????? 1? 0.36805926? -1.58335767 ? 1984????? 1 -0.52312153??? 0.36805926 ? 1980????? 2 -0.53559110??????????? NA ? 1981????? 2 -0.94935350? -0.53559110 ? 1982????? 2? 0.10486688? -0.94935350 ? 1983????? 2 -0.50266443??? 0.10486688 ?1984????? 2? 0.14644024? -0.50266443 ",sep="",header=TRUE) ?row.names(wage2.dat)<-c(paste0(1,".",1:5),paste0(2,".",6:10)) names(wage2.dat)[4]<-"wag.lag1" A.K. ----- Original Message ----- From: "Alok K Bohara, PhD" <bohara at unm.edu> To: R-help at r-project.org Cc: Sent: Wednesday, August 29, 2012 10:34 AM Subject: [R] creating lagged variable in panel data 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.
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. 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
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
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