[R] Is there a better way than x[1:length(x)-1] ?

Gabor Grothendieck ggrothendieck at gmail.com
Thu Aug 10 14:38:05 CEST 2006


On 8/9/06, John McHenry <john_d_mchenry at yahoo.com> wrote:
> Hi WizaRds,
>
> In MATLAB you can do
>
> x=1:10
>
> and then specify
>
> x(2:end)
>
> to get
>
> 2 3 4 5 6 7 8 9 10
>

In R you could do the above via:

x[-1]


> or whatever (note that in MATLAB the parenthetic index notation is used, not brackets as in R). The point is that 'end' allows you to refer to the final index point of the array.
>
> Obviously there isn't much gain in syntax when the variable name is x, but when it's something like
>
> hereIsABigVariableName(j:end-i)
>
> it makes things a lot more readable than
>
>  hereIsABigVariableName(j:length(hereIsABigVariableName)-i)
>
> In R I could do:
>
> n<- length(hereIsABigVariableName)
>  hereIsABigVariableName[j:n-i]

In "R version 2.4.0 Under development (unstable) (2006-08-08 r38825)"
available from CRAN, head and tail can have negative arguments:

   head(x, -2)

is the same as x[1:8] using your x.

>
> but I'd like to use something like 'end', if it exists.
>
> Am I missing something obvious in R that does what 'end' does in MATLAB?
>
> Thanks,
>
> Jack.
>
>
> ---------------------------------
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list