[R] New unique name

Barry Rowlingson B.Rowlingson at lancaster.ac.uk
Mon Apr 19 13:31:44 CEST 2004


(Ted Harding) wrote:

> A bit sledgehammer for nut, but as least it meets your needs!

  You could even use uuidgen to create a universally unique ID, and then 
use make.names to R-ify it:

 > make.names(system("uuidgen",intern=T))
[1] "aa33d26c.88a5.4eab.94ba.5073c4718ffe"
 > make.names(system("uuidgen",intern=T))
[1] "d5aea7a0.81e9.4690.8d48.d74fd2b50a83"
 > make.names(system("uuidgen",intern=T))
[1] "X2570d3e0.6b07.42be.a9c6.3701ac82b4f0"

  Of course the requirement was to make an object with a name that 
didn't already exist, and there's no guarantee that you haven't already 
created an object called "X2570d3e0.6b07.42be.a9c6.3701ac82b4f0" for 
some reason.

  So that's no good.

  How about getting an alphabetically-sorted list of all the current 
objects and then using the last one augmented with something:

makeUnique <- function(){
  allObjects=sort(ls(pos=seq(1:length(search()))))
  paste(allObjects[length(allObjects)],"-temp",sep='')
}

  I'm sure someone can come up with a bigger sledgehammer, or a reason 
why this wont always be unique. What's the longest name of an object in 
R? That'll break it... Pah.

Baz




More information about the R-help mailing list