[R] lead

2007-07-12 Thread Aydemir, Zava \(FID\)
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

2007-07-12 Thread Adaikalavan Ramasamy
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

2007-07-12 Thread Gabor Grothendieck
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.