 Chhaya Wagmi

# Explore R Libraries: tidydice

• Sep 14, 2020
• 111 Views
• Sep 14, 2020
• 111 Views
Data
Data Analytics
Machine Learning
R

## Introduction

When you were in high school, you probably studied basic statistics using virtual experiments like flipping a coin, rolling dice, or selecting a certain number of cards. When you start your career in data analysis, you will frequently encounter various situations where you might need to recall those experiments to help you learn various statistical topics, such as probability distributions, moments, the law of large numbers, and so on. If you are an R user, you can benefit from the tidydice library, which presents automated results of rolling a die and flipping a coin.

In this guide, you will learn to perform these simulations and plot their binomial distribution.

## Basics

``````1
````install.packages("tidydice")````
r

`package ‘tidydice’ successfully unpacked and MD5 sums checked`

Next, load the package in your current R environment using the given code:

``````1
````library(tidydice)````
r

Note: You can also install and load the tidyverse package, which goes hand in hand with the tidydice package.

## Simulating Experiments Related to Flipping of a Coin

The tidydice package provides the `flip_coin` function with which you can conduct experiments. The code below, from R’s documentation, demonstrates a few of the possible variations of the `flip_coin` function.

``````1
2
``````flip_coin(data = NULL, times = 1, rounds = 1, success = c(2),
agg = FALSE, sides = 2, prob = NULL, seed = NULL)``````

The results are not expressed as Heads and Tails, but rather 1 and 2. By default, the coin is unbiased, but you can change its behavior by using the `prob` parameter. The code below demonstrates a few of the possible variations of the `flip_coin` function.

``````1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
``````# 1. Flipping a coin two times
flip_coin(times = 2)

# # A tibble: 2 x 5
# experiment round    nr result success
# <int> <int> <int> <int> <lgl>
#   1     1     1      1 FALSE
#   1     1     2      2 TRUE

# 2. Flipping a coin two times for three rounds
flip_coin(times = 2, rounds = 3)

# # A tibble: 6 x 5
# experiment round    nr result success
# <int> <int> <int> <int> <lgl>
#  1     1     1      2 TRUE
#  1     1     2      1 FALSE
#  1     2     1      1 FALSE
#  1     2     2      1 FALSE
#  1     3     1      2 TRUE
#  1     3     2      2 TRUE

# 3. Flipping a coin three times by inducing bias
#     of 90% to one of the side
s
flip_coin(times = 3, prob = c(0.1, 0.9))

# # A tibble: 3 x 5
# experiment round    nr result success
# <int> <int> <int> <int> <lgl>
# 1     1     1      1 FALSE
# 1     1     2      2 TRUE
# 1     1     3      2 TRUE

# 4. Flipping a coin 5 times and reproducing
#     the same results with every run
flip_coin(times = 5, seed = 42)

# # A tibble: 5 x 5
# experiment round    nr result success
# <int> <int> <int> <int> <lgl>
# 1     1     1      1 FALSE
# 1     1     2      1 FALSE
# 1     1     3      1 FALSE
# 1     1     4      1 FALSE
# 1     1     5      2 TRUE

# 5. Combining experiments of flipping coins
flip_coin(times = 3, seed = 41, agg = T) %>%
flip_coin(times = 2, seed = 42, agg = T)

# # A tibble: 2 x 4
# experiment round times success
# <int> <int> <int> <int>
# 1     1     3       1
# 2     1     2       0``````
r

## Simulating Experiments Related to Rolling a Die

The tidydice package provides great flexibility in simulating experiments of rolling a die by giving you not only a textual representation of results, but also graphical ones. The code below, from R’s documentation, demonstrates a few of the possible variations of the `roll_dice` function.

``````1
2
``````roll_dice(data = NULL, times = 1, rounds = 1, success = c(6),
agg = FALSE, sides = 6, prob = NULL, seed = NULL)``````

The parameters of this function are similar to that of the `flip_coin` function. By default, the die is fair and you can bring bias to any of the sides using the `prob` parameter. Also by default, `success` is set to side 6, so you will receive `TRUE` when the dice results in the value 6. You can update this information anytime.

Here are two experiments based on this function:

``````1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
``````# 1. Rolling a die four times with 50% bias to its third side
#    and 10% to the rest of the sides. Also, providing a seed value
#    for reproducible results

roll_dice(times = 4, prob = c(0.1, 0.1, 0.5, 0.1, 0.1, 0.1), seed = 100)

# # A tibble: 4 x 5
# experiment round    nr result success
# <int> <int> <int>  <int> <lgl>
#   1     1     1      3   FALSE
#   1     1     2      3   FALSE
#   1     1     3      6   TRUE
#   1     1     4      3   FALSE

# 2. Rolling a die 10 times and finding how many times
#    the second side is rolled by setting the parameter 'success' to 2

roll_dice(times = 10, agg = TRUE, success = c(2), seed = 100)

# # A tibble: 1 x 4
# experiment round times success
# <int> <int> <int>   <int>
#   1     1    10       2``````
r

So far, you have learned how to generate tabular results of rolling a die. You can also get these results as a plot to make simulations more pleasant to the eye:

``````1
2
3
``````# 1. Rolling a die 3 times with a seed value
roll_dice(times = 3, seed = 402) %>%
plot_dice()``````
r ``````1
2
3
``````# 2. Rolling a die 3 times in 3 rounds with a seed value
roll_dice(times = 3, rounds = 3, seed = 402) %>%
plot_dice()``````
r ## Plotting a Binomial Distribution of your Experiment

You can plot the binomial distribution of your experiment using the command `plot_binom`.

Binomial distribution of flipping a coin 100 times:

``````1
````binom_coin(times = 100) %>% plot_binom()````
r Binomial distribution of rolling a die 50 times:

``````1
````binom_dice(times = 50) %>% plot_binom()````
r ## Conclusion

In this guide, you learned how to create automated simulations related to flipping a coin and rolling a die (including creating a plot). You can use these simulations with other statistical packages in R or to revise your statistical concepts.

2