[R] Relative subscripting
Uwe Ligges
ligges at statistik.uni-dortmund.de
Wed Dec 1 08:37:20 CET 2004
(Ted Harding) wrote:
> On 30-Nov-04 Tobias Muhlhofer wrote:
>
>>[...]
>>I have monthly a dataset with, among other things, "marketcap",
>>and "return".
>>
>>I want to multiply return by the marketcap of the previous month.
>>How do I do this?
>>
>>In STATA (which I have used frequently in the past) I would simply
>>use an expression of the form
>>
>>return[_n]*marketcap[_n-1]
>>
>>I believe they call this relative subscripting. Is there something
>>like this in R?
>
>
> Not as such, as far as I know. But there's an easy way to achieve
> the same effect:
>
> Let
>
> N<-length(return)
> new.var <- return[2:N]*marketcap[1:(N-1)]
Ted, I aggree to all of your points, but we can simplify by negative
indices (and hence circumvent your note 1):
return[-1] * marketcap[-N]
Uwe Ligges
> Notes:
> 1. Note the parantheses in "1:(N-1)".
> > 1:(6-1)
> [1] 1 2 3 4 5
> > 1:6-1
> [1] 0 1 2 3 4 5
> (i.e. ":" is evaluated before "-")
>
> 2. You could also define n <- 2:(N-1) in which case you could
> definitely write
>
> return[n]*marketcap[n-1]
>
> which looks very similar to what you wrote, but I don't
> know whether it implies the same underlying mechanism.
>
>
> 3. I'm not sure you should use "return" as the name of a variable,
> since it's a predefined function in R, which you can put in a
> function definition to tell it what to return:
> > sq<-function(x){return(x^2)}
> > sq(4)
> [1] 16
>
> In my experiments, it didn't seem to change this behaviour
> to assign something to "return", e.g. return<-2, even inside
> the function definition; but I'd recommend avoiding the practice!
>
> You could avoid it here by using "Return" instead of "return"
> for the name of your variable.
>
> Best wishes,
> Ted.
>
>
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at nessie.mcc.ac.uk>
> Fax-to-email: +44 (0)870 094 0861 [NB: New number!]
> Date: 30-Nov-04 Time: 21:34:02
> ------------------------------ XFMail ------------------------------
>
> ______________________________________________
> R-help at 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
More information about the R-help
mailing list