如何在 R 中生成 GUID

  • 本文关键字:GUID r random guid uuid
  • 更新时间 :
  • 英文 :


如何在 R 中生成 GUID 和 UUID?

我希望能够根据运行会话的计算机的硬件等生成 GUID。

但是,作为后备,我很乐意创建符合 rfc4122 的 UUID。

是否有可以创建 GUID 的包?否则,有人有一些RFC4122兼容的UUID代码吗?

现在的最佳

选择是uuid包。 它由一个函数(UUIDgenerate)组成,它不依赖于R的内部随机数生成器,因此不会像@thelatemail的答案那样在会话中使用set.seed而遭受任何后果。 您可以选择由包的内部随机数生成器生成 UUID,也可以基于时间生成 UUID。

我对UUID的复杂性一无所知,但是这样的事情会吗?

baseuuid <- paste(sample(c(letters[1:6],0:9),30,replace=TRUE),collapse="")
paste(
    substr(baseuuid,1,8),
    "-",
    substr(baseuuid,9,12),
    "-",
    "4",
    substr(baseuuid,13,15),
    "-",
    sample(c("8","9","a","b"),1),
    substr(baseuuid,16,18),
    "-",
    substr(baseuuid,19,30),
    sep="",
    collapse=""
)
# result like: "f7bd11ed-fca9-42e5-8c3e-4464cd02e0fa"

这应该符合 http://en.wikipedia.org/wiki/Uuid#Version_4_.28random.29

如果你在Unix环境中使用R,你可以使用system()命令在R中获取UUID。

在 Linux (Ubuntu 12.04 LTS) 上:

my_uuid <- system("uuid",intern=T)
my_uuid
[1] 0f62f1de-418d-11e3-8a19-cb0ceccb58ec

在 Mac OS X 10.8 上:

my_uuid <- system("uuidgen", intern=T)
my_uuid
[1] 9A9D64DF-EB01-47E7-B16E-DC0343951883

据我所知,uuiduuidgen都遵循UUID版本4格式。

Bioconductor有一个Ruuid软件包,似乎不再存在,但是在"Ruuid"上的谷歌搜索会指向你可以下载它的地方。

相关内容

  • 没有找到相关文章

最新更新