The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
This vignette explores three alternative types of decks offered by the ‘mmcards’ package that may better suit your specific use case compared to a standard 52-card deck. First, load the ‘mmcards’ library, and then we’ll play simple games to illustrate how each deck works.
Suppose you’re teaching a statistical concept and want to simulate drawing samples from a population. In that case, you can define a custom AnonymousDeck and play a game to drive the idea home.
# Define the Players
p1 <- NULL
p2 <- NULL
# Create a shuffled anonymous deck of 10 cards using a random number seed for reproducibility
game_deck <- shuffle_deck(deck_of_cards = function(x){rnorm(10, 0, 5)},
seed = 147)
# Deal a card to each player
game_deck <- deal_card(game_deck)
p1 <- game_deck$dealt_card
game_deck <- deal_card(game_deck)
p2 <- game_deck$dealt_card
# Display the cards and determine the winner
paste("p1 has:", p1$card, "with a value of", p1$value)
#> [1] "p1 has: 8 with a value of 2.21542965936812"
paste("p2 has:", p2$card, "with a value of", p2$value)
#> [1] "p2 has: 1 with a value of -9.39463929631786"
paste0("The winner is: ", ifelse(abs(p1$value) < abs(p2$value), "p1", "p2"))
#> [1] "The winner is: p1"
# Here are the remaining 8 cards in the deck
print(game_deck$updated_deck)
#> card value
#> 5 5 -2.519066
#> 3 3 -2.771481
#> 4 4 -2.678679
#> 6 6 -1.461480
#> 2 2 -3.768717
#> 9 9 4.658202
#> 10 10 8.255931
#> 7 7 1.201079
If you want to simulate drawing samples from two distinct populations, an InterleavedDeck can be useful.
# Define the Players
p1 <- NULL
p2 <- NULL
# Create a shuffled interleaved deck of 10 cards using a random number seed for reproducibility
game_deck <- shuffle_deck(deck_of_cards = function(x){list(rnorm(5, 0, 5),
rnorm(5, 0, 3))},
seed = 157)
# Deal a card to each player
game_deck <- deal_card(game_deck)
p1 <- game_deck$dealt_card
game_deck <- deal_card(game_deck)
p2 <- game_deck$dealt_card
# Display the cards and determine the winner
paste("p1 has:", p1$card, "with a value of", p1$value)
#> [1] "p1 has: A_3 with a value of 2.5268783375614"
paste("p2 has:", p2$card, "with a value of", p2$value)
#> [1] "p2 has: B_2 with a value of -1.45153422895941"
paste0("The winner is: ", ifelse(abs(p1$value) < abs(p2$value), "p1", "p2"))
#> [1] "The winner is: p2"
# Here are the remaining 8 cards in the deck
print(game_deck$updated_deck)
#> card value
#> 2 A_2 2.58087475
#> 41 B_4 3.56098941
#> 4 A_4 9.75742338
#> 51 B_5 2.71402888
#> 1 A_1 0.06059832
#> 31 B_3 -3.18706595
#> 5 A_5 8.46972493
#> 11 B_1 -0.79511543
A PairedDeck is ideal for games that require maintaining a natural pairing between cards, such as in a paired t-test scenario.
# Define the hands
LH <- NULL
RH <- NULL
# Create a shuffled paired deck of 20 cards using a random number seed for reproducibility
game_deck <- shuffle_deck(deck_of_cards = function(x){list(rpois(10, 30),
rnorm(10, 40))},
seed = 232,
paired = TRUE)
# For the student whose cards came out on top, get the hang time for each hand
game_deck <- deal_card(game_deck)
LH <- game_deck$dealt_card
game_deck <- deal_card(game_deck)
RH <- game_deck$dealt_card
# Display the cards and determine which hand was stronger
paste("This student's left hand card is:",
LH$card, "with a value of", LH$value)
#> [1] "This student's left hand card is: A_6 with a value of 32"
paste("This student's right hand card is:", RH$card, "with a value of", RH$value)
#> [1] "This student's right hand card is: B_6 with a value of 40.8653697233691"
paste0("Did this student hang for longer with left hand?: ",
ifelse(LH$value > RH$value, "Yes", "No"))
#> [1] "Did this student hang for longer with left hand?: No"
# Here are the remaining students' hang times
print(game_deck$updated_deck)
#> card value
#> 2 A_2 23.00000
#> 21 B_2 41.56952
#> 9 A_9 30.00000
#> 91 B_9 39.67030
#> 5 A_5 32.00000
#> 51 B_5 39.52775
#> 7 A_7 23.00000
#> 71 B_7 40.55928
#> 4 A_4 21.00000
#> 41 B_4 41.16555
#> 3 A_3 36.00000
#> 31 B_3 41.39362
#> 10 A_10 31.00000
#> 101 B_10 37.64896
#> 8 A_8 21.00000
#> 81 B_8 40.62200
#> 1 A_1 39.00000
#> 11 B_1 40.82121
Notice that the students’ order is shuffled but the LH and RH pairs are intact.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.