Simulate many sets between two players given a number of parameters, that include probability of each player winning a point on their first serve, on their second serve, and the probability that their first serve will go in. This function returns a detailed list with data about the games within each simulated set.
simSets(n = 1000, pA, pB,
        playTiebreak = TRUE, players = c("A", "B"),
        p2A = NULL, firstServeA = NULL,
        p2B = NULL, firstServeB = NULL,
        .progress = "none")
| param | details | 
|---|---|
| n | number of simulations (default is 1000) | 
| pA | probability of player A winning point on their first serve | 
| pB | probability of player B winning point on their first serve | 
| playTiebreak | play tiebreak in the event the set reaches 6 games all | 
| players | player names (vector of length 2) | 
| p2A | probability of player A winning point on their second serve | 
| firstServeA | probability of player A’s first serve being in | 
| p2A | probability of player B winning point on their second serve | 
| firstServeB | probability of player B’s first serve being in | 
| .progress | plyr’s progress bar | 
Unlike using replicate on simSet, using simSets will return a detailed list, containing data about the simulated sets rather than just the results of those simulations.
There are a number of generic methods available for an object returned by simSets, these are print, summary and plot, example use is show below.
egSets <- simSets(n = 100,
                  pA = .78, pB = .70, p2A = .56, p2B = .6,
                  firstServeA = .67, firstServeB = .7)
The object egSets has a class of svR_sets which comes with a few methods
egSets
## 
## Simulation of 100 sets:
## 
## Server Probabilities:
##  player    p   p2 firstServe
##       A 0.78 0.56       0.67
##       B 0.70 0.60       0.70
## 
## Player A (A) won 0.63 of sets.
summary(egSets)
## 
## Simulation of 100 sets:
## 
## Server Probabilities:
##  player    p   p2 firstServe
##       A 0.78 0.56       0.67
##       B 0.70 0.60       0.70
## 
## Player A (A) won 0.63 of sets.
##        playerB
## playerA    1    2    3    4    5    6    7
##       2                          0.02     
##       3                          0.01     
##       4                          0.09     
##       5                               0.09
##       6 0.03 0.02 0.27 0.05           0.16
##       7                     0.09 0.17
plot(egSets)

simDfIf detail = TRUE then the list can also be entered into the function simDf which will convert the simulated sets into a dataframe.
df <- simDf(egSets)
head(df)
##   simNo pA pB setA setB set_res gameNo serving    p   p2 firstServe
## 1     1  A  B    6    3       1      1       A 0.78 0.56       0.67
## 2     1  A  B    6    3       1      2       B 0.70 0.60       0.70
## 3     1  A  B    6    3       1      3       A 0.78 0.56       0.67
## 4     1  A  B    6    3       1      4       B 0.70 0.60       0.70
## 5     1  A  B    6    3       1      5       A 0.78 0.56       0.67
## 6     1  A  B    6    3       1      6       B 0.70 0.60       0.70
##   game_res server returner
## 1        1      4        1
## 2        1      4        2
## 3        1      4        0
## 4        1      4        0
## 5        1      4        2
## 6        0      1        4
The dataset contains the following variables:
| variables | about | 
|---|---|
| simNo | simulation number | 
| pA | player A | 
| pB | player B | 
| setA | games won by player A | 
| setB | games won by player B | 
| set_res | set result (1 if player A wins, 0 if player B wins) | 
| gameNo | game number in set | 
| serving | player serving | 
| p | probability of server winning a point on their first serve | 
| p2 | probability of server winning a point on their second serve | 
| firstServe | probability of first serve being in | 
| game_res | game result (1 if server wins, 0 if returner wins) | 
| server | number of points won by server in service game | 
| returner | number of points won by returner in service game |