[R] lead
Hi, is there any function in R that shifts elements of a vector to the opposite direction of what Lag() of the Hmisc package does? (something like, Lag(x, shift = -1) ) Thanks Zava This is not an offer (or solicitation of an offer) to buy/se...{{dropped}} __ R-help@stat.math.ethz.ch 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.
Re: [R] lead
How about revLag - function(x, shift=1) rev( Lag(rev(x), shift) ) x - 1:5 revLag(x, shift=2) As a matter of fact, here is a generalized version of Lag to include negative shifts. myLag - function (x, shift = 1){ xLen - length(x) ret - as.vector(character(xLen), mode = storage.mode(x)) attrib - attributes(x) if (!is.null(attrib$label)) atr$label - paste(attrib$label, lagged, shift, observations) if (shift == 0) return(x) if( xLen = abs(shift) ) return(ret) if (shift 0) x - rev(x) retrange = 1:abs(shift) ret[-retrange] - x[1:(xLen - abs(shift))] if (shift 0) ret - rev(ret) attributes(ret) - attrib return(ret) } and some test examples: myLag(1:5, shift=2) [1] NA NA 1 2 3 myLag(letters[1:4], shift=2) [1] a b myLag(factor(letters[1:4]), shift=2) [1] NA NA ab Levels: a b c d myLag(1:5, shift=-2) [1] 3 4 5 NA NA myLag(letters[1:4], shift=-2) [1] c d myLag(factor(letters[1:4]), shift=-2) [1] cdNA NA Levels: a b c d Regards, Adai Aydemir, Zava (FID) wrote: Hi, is there any function in R that shifts elements of a vector to the opposite direction of what Lag() of the Hmisc package does? (something like, Lag(x, shift = -1) ) Thanks Zava This is not an offer (or solicitation of an offer) to buy/se...{{dropped}} __ R-help@stat.math.ethz.ch 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. __ R-help@stat.math.ethz.ch 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.
Re: [R] lead
The lag.zoo method of lag in the zoo package supports positive, negative and multiple lags and has an na.pad= argument. (zoo also has a lag.zooreg method, not shown, for zooreg objects): library(zoo) z - zoo(11:15) z 1 2 3 4 5 11 12 13 14 15 lag(z, na.pad = TRUE) 1 2 3 4 5 12 13 14 15 NA lag(z, 1, na.pad = TRUE) # same 1 2 3 4 5 12 13 14 15 NA # negative lag lag(z, -1, na.pad = TRUE) 1 2 3 4 5 NA 11 12 13 14 # mulitple lags lag(z, 1:3, na.pad = TRUE) lag1 lag2 lag3 1 12 13 14 2 13 14 15 3 14 15 NA 4 15 NA NA lag(z, -(1:3), na.pad = TRUE) lag-1 lag-2 lag-3 211NANA 31211NA 4131211 5141312 vignette(zoo) # more info on zoo On 7/12/07, Aydemir, Zava (FID) [EMAIL PROTECTED] wrote: Hi, is there any function in R that shifts elements of a vector to the opposite direction of what Lag() of the Hmisc package does? (something like, Lag(x, shift = -1) ) Thanks Zava This is not an offer (or solicitation of an offer) to buy/se...{{dropped}} __ R-help@stat.math.ethz.ch 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. __ R-help@stat.math.ethz.ch 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.