Rでコマンド:「stringi」パッケージを利用したランダムな文字列を生成する一例

Rの解析に役に立つ記事
スポンサーリンク

たまにランダムな文字列を生成する必要があります。そんな時は「stringi」パッケージのstri_rand_stringsコマンドがオススメです。参考までにデータセットの作成例を紹介します。

実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

実行コマンド

下記コマンドを実行してください。詳細は各パッケージのヘルプを確認してください。

#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

#stringiパッケージがなければインストール
if(!require("stringi", quietly = TRUE)){
  install.packages("stringi");require("stringi")
}

#指定パターンから指定の長さで文字列を作成:stri_rand_stringsコマンド
#生成数を指定:nオプション
#文字列の長さを指定:lengthオプション
#パターンを指定:patternオプション
stri_rand_strings(n = 3, length = 4, pattern = "[a-zあ-んア-ンA-Z0-9]")
[1] "るばGガ" "iニョあ" "tVヲっ"

###データ例の作成#####
n <- 300
#&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;&#26041;&#27861;1
#tidyr,stringi&#12497;&#12483;&#12465;&#12540;&#12472;&#12392;replace&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;
TestData1 <- tibble(Time = paste0("Time", formatC(1:n, width = 2, flag = "0")),
                    Word = paste0("Word", formatC(1:n, width = 2, flag = "0")),
                    Strings = NA) %>%
  group_by(Time) %>%
  mutate_at(vars(-group_cols()),
            ~replace(., is.na(.),
                     stri_rand_strings(n = 1, length = 4,
                                       pattern = "[a-z&#12354;-&#12435;&#12450;-&#12531;A-Z0-9]"))) %>%
  spread(key = Word, Strings)

#&#12487;&#12540;&#12479;&#20363;&#12398;&#20316;&#25104;&#26041;&#27861;2
#stringi&#12497;&#12483;&#12465;&#12540;&#12472;&#12392;base&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;
TestData2 <- data.frame(paste0("Group", formatC(1:n, width = 2, flag = "0")),
                           matrix(stri_rand_strings(n = n^2, length = 4,
                                                    pattern = "[a-z&#12354;-&#12435;&#12450;-&#12531;A-Z0-9]"), n, n))
colnames(TestData2) <- c("Time", paste0("Word", formatC(1:n, width = 2, flag = "0")))
########

出力例


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました