Qiitaの駿台予備校の広告の「あれ」の記事がありましたので、Rでも台無しにしてみました。
#動作環境
- R 4.1.2
- RStudio 2021.09.1 Build 372
#使用パッケージ
今回使用するパッケージはRcppAlgosパッケージです。
以下のサイトのやり取りを参考にさせていただきました。
パッケージ作成者の方の書き込みがドンピシャの回答でした。
#RcppAlgosパッケージによるスクリプト
install.packages("RcppAlgos")
library(RcppAlgos)
vec <- c("G","A","K","K","O","U")
tbl_v <- table(vec)
GK <- permuteGeneral(names(tbl_v), 6, freqs = tbl_v)
GK[100,1:6]
3行目:文字列のベクトルvecを作成
4行目:テーブルで文字列の頻度を作成
5行目:permuteGeneral関数で組み合わせを格納するマトリクスGKを作成
6行目:GKの100番目の1番目から6番目の文字列を表示
#gtoolsパッケージでは動かず。。。
ちなみに、以下のサイトで紹介されているgtoolsでもやってみたのですが、残念ながら今日現在(2022年1月20日)私の環境では6文字のベクトルで6文字の組み合わせではエラーが出て使えませんでした。残念。
#なぜこの記事を作ったのか
先日、電車に乗っていたらこの駿台予備校の広告を目にして、何となくモヤモヤして過ごしていました。
仕事がすこし落ち着いたので、モヤモヤを解決すべくQiitaで調べてみたところ冒頭の記事を見かけました。
これはRでも作れるのではないかということで、調べて記事にしました。
組み合わせの関数やfor文などの基本的な関数を組み合わせたもので作りたかったのですが、仕事で時間が取れないためRの世界中の豊富なパッケージの力を活用させていただきました。
先人の努力に感謝します。
(Thank you Joseph-san for your package to solve this problem)
私自身のモヤモヤがスッキリして、今夜はゆっくり眠れそうです♪
#受験生の皆さんへ
色々と不安なこともあるかと思いますが、最後は自分を信じて本番で力を出し切ってください。
皆さんのご健闘を祈っています。