| create_question_random {shinyquiz} | R Documentation |
Create a random question
Description
Create questions with inherit randomness. Allows one function to generate many different questions.
Usage
create_question_random(.f, n = 50)
Arguments
.f |
a function that outputs an object of class |
n |
a numeric value indicating how many draws of function .f to include in the random question bank. |
Details
create_question_random() takes any user generated function .f. The function passed to the .f argument creates a random prompt along with an updated answer, the function passed to the .f argument must return an object of class quizQuestion. create_question_random() will automatically check to ensure the function passed to .f is in the appropriate format. The n argument controls how many random draws from the function passed to .f are included in the question bank for the quiz. Higher values of n allow more unique questions but extreme values of n may also lead to slower performance. To create a quiz with n randomly generated questions, create_question_random() can be passed as an argument to create_quiz().
Value
a list of length n that includes objects of class quizQuestionRandom
Author(s)
George Perrett, Joseph Marlo
Examples
# a function that generates a random question
random_question <- function() {
number <- round(rnorm(1, 30, 10), 0)
rand_prompt <- paste('Is', number, 'an even number?')
# using create_question inside the function helps to ensure correct class
q <- create_question(
prompt = rand_prompt,
add_choice('Yes, it is even', correct = number %% 2 == 0),
add_choice('No, it is odd', correct = number %% 2 != 0)
)
return(q)
}
# create a quiz with a question bank of 20 randomly generated questions
quiz <- create_quiz(
create_question_random(.f = random_question, n = 20)
)