RでGUIDとUUIDを生成するにはどうすればよいですか?
rsessionを実行しているマシンのハードウェアなどに基づいてGUIDを生成できるようにしたいと思います。
ただし、フォールバックとして、rfc4122に準拠するUUIDを作成できれば幸いです。
GUIDを作成できるパッケージはありますか?それ以外の場合、誰かがRFC4122互換のUUIDコードを持っていますか?
これに最適なのはuuid
パッケージです。UUIDgenerate
これは、 Rの内部乱数ジェネレーターに依存しない1つの関数( )で構成されているためset.seed
、@thelatemailの回答のようにセッションで使用しても影響を受けません。パッケージの内部乱数ジェネレーターによって、または時間に基づいてUUIDを生成するように選択できます。
Unix環境でRを使用している場合は、system()
コマンドを使用してRでUUIDを取得できます。
my_uuid <- system("uuid",intern=T)
my_uuid
[1] 0f62f1de-418d-11e3-8a19-cb0ceccb58ec
my_uuid <- system("uuidgen", intern=T)
my_uuid
[1] 9A9D64DF-EB01-47E7-B16E-DC0343951883
私の知る限り、両方ともUUIDバージョン4形式uuid
にuuidgen
従います。
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と一致している必要があります
Bioconductorにはもう存在しないように見えるRuuidパッケージがありましたが、「Ruuid」をグーグル検索すると、ダウンロードできる場所が示されます。