Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ダミー注文スクリプトを追加 #325

Merged
merged 5 commits into from
Oct 22, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions scripts/analytics/genorder/discliption.md
toririm marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# この文章について

同一階層にあるgenorder.Rの機能を説明する文章です。

# genorder.Rの説明

## 機能

珈琲・俺の雙峰祭1号店用のダミー注文データを生成するスクリプトです。
スクリプト内のgen_order()関数を呼び出すと注文が返されます。


## 仕様

### gen_order()関数

プレーンテキストでダミー注文データを出力します。

### txtファイル出力

コメントアウト部分にファイルへの書き出し機能が書かれています。
中身は空白文字区切りで、


<通し番号> <注文1> <注文2> <注文3> ・・・ <改行>


となっています。
生成する注文数はforループの回数で決定してください(デフォルト:100)

### 生成アルゴリズム

あまり丁寧ではない確率量関数を2023年度販売実績をベースに作成してあります。
ただし、2023年度に類似品を販売していないホットオレについてはえいやで決めた予測値が入っています。
この確率分布からダミー注文を生成しています。

注文杯数と注文商品内訳の分布は独立としてモデル化してあります。



55 changes: 55 additions & 0 deletions scripts/analytics/genorder/genorder.R
Original file line number Diff line number Diff line change
@@ -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()