@RPubsRecent という Twitter Bot を作りました。(紹介記事)
これは、RPubs の新着記事をつぶやく Bot なんですが、下図のような構成になっております。
新着記事をチェックするのは1時間に一回、Tweet は13分に一回やっています。
これは、新着記事が複数あった場合を考えてのことで、Tweet は一回につき一つの記事しかつぶやきません。
ところで、この Bot は新しい記事が投稿されたとき、どのくらいの時間が経つとつぶやいてくれるのでしょうか?
せっかくなので、R で計算してみましょう。
まず、シミュレーションする関数を作ります。
Simulate <- function(check.interval, tweet.interval, count.sim) {
c <- sample(seq(1, check.interval) - 1, size = count.sim, replace = TRUE)
t <- sample(seq(1, tweet.interval) - 1, size = count.sim, replace = TRUE)
c + t
}
c は記事が投稿されてからチェックされるまでの時間をランダムに取得しています。
t はチェックされてからツイートされるまでの時間をランダムに取得しています。
これらの合計が、投稿されてからツイートされるまでの時間になります。
では、この関数を使ってシミュレーションしてみましょう。
check.interval <- 60
tweet.interval <- 13
count.sim <- 10000
result <- Simulate(check.interval, tweet.interval, count.sim)
hist(result, main = "Frequency of minutes until to tweet from the publishing",
xlab = "Minutes")
投稿からつぶやきまでの時間(分)は、こんな感じで分布するようです。
パーセンタイルを見てみましょう。
quantile(result, probs = seq(0, 1, by = 0.1))
## 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
## 0 11 18 24 29 35 41 47 53 59 71
つまり、投稿のうち 40% は 30分以内、90% は 1時間以内につぶやかれるという結果になりました。なるほど~。
この記事は何分後につぶやかれることになるんでしょうかね~。
※この記事のソースコード(R Markdown形式)は、下記からダウンロードできます。
RPubsRecentTweets.Rmd
Let's Enjoy RPubs!