Description Usage Arguments Details Value See Also Examples
A function for generating a single-choice question list for one correct numeric solution along with four wrong solutions.
1 2 3 |
correct |
numeric vector of length 1 with correct solution. |
wrong |
numeric vector (optional) with wrong solutions. |
range |
numeric vector of length 2 with range of random wrong solutions. |
delta |
numeric. Minimal distance between solutions. |
digits |
integer. Digits that should be displayed. |
method |
character specifying method for generating random results. |
sign |
logical. Should the sign be changed randomly? |
verbose |
logical. Should warnings be issued if no suitable set of wrong solutions can be found? |
The function num_to_schoice
(or equivalently num2schoice
)
can be used for generating a single-choice
question list for a numeric correct
solution. The question list
always comprises five elements, one of which is the correct solution. The
wrong solutions can be provided or are generated randomly. If wrong
is provided only up to 2 elements of it are used in order to assure some
random solutions.
Two methods can be used to generate the wrong solutions: Either simply
runif
or otherwise a full equi-distant grid for the
range
with step size delta
is set up from which a discrete
uniform sample is drawn. The former is preferred if the range
is large
enough while the latter performs better if the range
is small (as
compared to delta
.
Exercise templates using num_to_schoice
should be thoroughly
tested in order to avoid problems with too small ranges or almost
identical correct and wrong answers! This can potentially cause problems,
infinite loops, etc.
num_to_schoice
/num2schoice
returns either NULL
(if no suitable question
list can be found) or a list with the following components:
solutions |
a logical vector of length 5 indicating the |
questions |
a character vector of length 5 with question list. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | set.seed(1)
## just a correct solution
num_to_schoice(123.45)
## or equivalently
set.seed(1)
num2schoice(123.45)
## just a correct integer solution
num_to_schoice(123, digits = 0)
## a correct solution with a wider range
num_to_schoice(123.45, range = c(0, 200))
## here, the defaults can't work...
## num_to_schoice(0.1234)
## alternatives could be
num_to_schoice(0.1234, range = c(0, 1), delta = 0.03, method = "delta")
num_to_schoice(0.1234, range = c(-5, 5), delta = 0.05)
num_to_schoice(0.1234, wrong = c(0.2749, 1.9723), delta = 0.05)
num_to_schoice(0.1234, wrong = c(0.2749, 1.9723), range = c(-5, 5), delta = 0.05)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.