[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]同じ文字列を繰り返した文字列を作成する(2026.02.02)
- [R]文字列が数値に変換できるかどうか判定する(2025.12.31)
- [R]文字列の長さを得る(2025.12.30)
- [R]空白を追加した指定の長さの文字列を得る(2025.12.26)
- [R]文字列型ベクトルの要素を連結して文字列を作る(2025.12.17)

コメント