[R] Equivalents of Matlab's 'find' and 'end'

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Oct 7 16:43:00 CEST 2004

On Thu, 7 Oct 2004, Bryan L. Brown wrote:

> Sorry if these questions have been asked recently--I'm new to this list.  
> I'm primarily a Matlab user who is attempting to learn R and I'm
> searching for possible equivalents of commands that I found very handy
> in Matlab.  So that I don't seem ungrateful to those who may answer, I
> HAVE determined ways to carry out these processes in 'brute force' sorts
> of ways in R code, but they lack the elegance and simplicity of the
> Matlab commands.  Also, if you know that no such commands exist, that
> bit of knowledge would be helpful to know so that I don't continue
> fruitless searches.
> The first is Matlab's 'find' command.  

> This is one of the most useful commands in Matab.  Basically, if X is
> the vector
> X=[3, 2, 1, 1, 2, 3]
> the command 
> 'find(X==1)'
> would return the vector [3, 4] which would indicate that the vector X
> had the value of 1 at the 3 and 4 positions.  This was an extremely
> useful command for subsetting in Matlab.  The closest thing I've found
> in R has been 'match' but match only returns the first value as opposed
> to the position of all matching values.


> The second Matlab command that I'd like to find an R equivalent for is
> 'end'.  'end' is just a simple little command that indicates the end of
> a row/column.  It is incredibly handy when used to subset matrices like
> Y = X(2:end)
> and produces Y=[2, 1, 1, 2, 3] if the X is the same as in the previous example.  This cutsie little command was extremely useful for composing programs that were flexible and could use input matrices of any size without modifying the code.  I realize that you can accomplish the same by Y <- X[2:length(X)] in R, but this method is ungainly, particularly when subsetting matrices rather than vectors.  


but X[-1] would be easier in R.

> If anyone has advice, I'd be grateful,

Advice: read a good account of indexing in R:  `An Introduction to R' is a 
good start.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list