« [R]ランダムに作成された文字列を得る | トップページ | [R]バイナリファイルを作成する »

2024年1月14日 (日)

[R]ランダムに作成された文字列を得る

runif関数とpaste関数を組み合わせて使う。chベクトルには文字列にランダムで割り振る文字を指定し、lenベクトルには得たい文字列の長さを1つだけ指定する。ただし、この方法では一度に一つの文字列しか得ることはできない。

定数LETTERSとlettersにはそれぞれ英大文字と英小文字を含むベクトルのため、これらをそのまま利用すれば英大小文字だけからなるランダムな文字列を作成することができる。当然、記号を適当に含めれば、それらの文字列からなる任意の文字列を作成することができる。

> len <- 10
> ch <- LETTERS
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "WTHNZZCBIJ"
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "STATFLICHV"
> len <- 20
> ch <- c(LETTERS, letters, "#", "$", "%", "&")
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "bBYEODy&DlSZuKcaaykO"
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "hCYaqYkpWkDbP$HcAZPB"

文字列はRの乱数の規則に則って作成される。そのため、乱数の種をset.seed関数で指定すると、作成される文字列を再現することができる。

> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "XG#C#CwhHgBWKgyVdblP"
> set.seed(20)
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "xrPd$%FDSUoqApKZSGQt"
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "bBYEODy&DlSZuKcaaykO"
> set.seed(20)
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "xrPd$%FDSUoqApKZSGQt"
> paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "")
[1] "bBYEODy&DlSZuKcaaykO"

« [R]ランダムに作成された文字列を得る | トップページ | [R]バイナリファイルを作成する »

R(文字と文字列)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]ランダムに作成された文字列を得る | トップページ | [R]バイナリファイルを作成する »

無料ブログはココログ

■■

■■■