[R] placing labels in polygon center ?

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Thu Aug 14 14:22:06 CEST 2003


Richard A. O'Keefe wrote:
> I wrote:
> 	I found myself wishing for a function to rotate a vector.
> 	Is there one?  I know about ?lag, but help.search("rotate")
> 	didn't find anything to the point.
> 
> Here I was regarding a vector as a _sequence_.
> The (one-step) rotation of c(u,v,w,x,y,z) is c(v,w,x,y,z,u).
> This is pretty much the way APL uses the word "rotate" (the
> vertical-bar-overstruck-with-a-circle operator).
>

  Do you want:

   c(x[-1],x[1])  for a one-step 'rotation'?

  You could write a function:

function(x,n){
   c(x[-(1:n)],x[1:n])
  }

 > rotVec(1:10,5)
  [1]  6  7  8  9 10  1  2  3  4  5

  except this fails for n=0 or n>length(x). Ah.

function(x,n){
   n <- 1+(n-1)%%length(x)
   c(x[-(1:n)],x[1:n])}
  }

  seems to work. Even for negative n:

 > rotVec(1:10,-1)
  [1] 10  1  2  3  4  5  6  7  8  9

Baz




More information about the R-help mailing list