diff --git a/scripts/analytics/genorder/README.md b/scripts/analytics/genorder/README.md new file mode 100644 index 00000000..b45f004f --- /dev/null +++ b/scripts/analytics/genorder/README.md @@ -0,0 +1,40 @@ +# この文章について + +同一階層にあるgenorder.Rの機能を説明する文章です。 + +# genorder.Rの説明 + +## 機能 + +珈琲・俺の雙峰祭1号店用のダミー注文データを生成するスクリプトです。 +スクリプト内のgen_order()関数を呼び出すと注文が返されます。 + + +## 仕様 + +### gen_order()関数 + +プレーンテキストでダミー注文データを出力します。 + +### txtファイル出力 + +コメントアウト部分にファイルへの書き出し機能が書かれています。 +中身は空白文字区切りで、 + + +<通し番号> <注文1> <注文2> <注文3> ・・・ <改行> + + +となっています。 +生成する注文数はforループの回数で決定してください(デフォルト:100) + +### 生成アルゴリズム + +あまり丁寧ではない確率量関数を2023年度販売実績をベースに作成してあります。 +ただし、2023年度に類似品を販売していないホットオレについてはえいやで決めた予測値が入っています。 +この確率分布からダミー注文を生成しています。 + +注文杯数と注文商品内訳の分布は独立としてモデル化してあります。 + + + diff --git a/scripts/analytics/genorder/genorder.R b/scripts/analytics/genorder/genorder.R new file mode 100644 index 00000000..2cd95156 --- /dev/null +++ b/scripts/analytics/genorder/genorder.R @@ -0,0 +1,55 @@ +rm(list=ls(all=TRUE)) + + +gen_order <- function(){ + + + gen_cupnum <- function(){ + rand_float <- runif(1, min = 0, max = 1) + checker <- c(rand_float < 0.6, rand_float < 0.9, rand_float < 0.975, rand_float < 0.99, rand_float <= 1) + + return(which.max(as.numeric(checker))) + } + + gen_menu <- function(){ + menu <- c("cafeore.brend", + "2024win.brend", + "au_latte.ice" , + "au_latte.hot" , + "coffee.ice" , + "special.hot" , + "milk.ice" , + "pink.single" , + "red.single" , + "blue.single" ) + rand_float <- runif(1, min = 0, max = 1) + checker <- c(rand_float < 0.22, #cafeore.brend + rand_float < 0.44, #2024win.brend + rand_float < 0.57, #au_latte.ice + rand_float < 0.67, #au_latte.hot + rand_float < 0.77, #coffee.ice + rand_float < 0.84, #special.hot + rand_float < 0.85, #milk.ice + rand_float < 0.90, #pink.single + rand_float < 0.95, #red.single + rand_float <= 1) #blue.single + return(menu[which.max(as.numeric(checker))]) + } + + order_cupnum <- gen_cupnum() + order_ingredients <- rep("", order_cupnum) + for(i in 1:order_cupnum){ + order_ingredients[i] <- gen_menu() + } + return(sort(order_ingredients)) +} + + + + +# for(s in 1:100){ +# cat(s, gen_order(), "\n", file = "order_sample.txt", append = TRUE) +# } + +gen_order() +