The function GRF()
generates random frequencies based on a design, i.e.,
a list giving the factors and the categories with each factor.
The data are given in the compiled
format.
GRF( design, n, prob = NULL, f = "Freq" )
A list with the factors and the categories within each.
How many simulated participants are to be classified.
(optional) the probability of falling in each cell of the design.
(optional) the column names that will contain the frequencies.
a data frame containing frequencies per cells of the design.
The name of the function GRF()
is derived from grd()
,
a general-purpose tool to generate random data (Calderini and Harding 2019)
now bundled
in the superb
package (Cousineau et al. 2021)
.
Calderini M, Harding B (2019).
“GRD for R: An intuitive tool for generating random data in R.”
The Quantitative Methods for Psychology, 15(1), 1--11.
doi:10.20982/tqmp.15.1.p001
.
Cousineau D, Goulet M, Harding B (2021).
“Summary plots with adjusted error bars: The superb framework with an implementation in R.”
Advances in Methods and Practices in Psychological Science, 4, 1--18.
doi:10.1177/25152459211035109
.
# The first example disperse 20 particants in one factor having
# two categories (low and high):
design <- list( A=c("low","high"))
GRF( design, 20 )
#> A Freq
#> 1 low 9
#> 2 high 11
# This example has two factors, with factor A having levels a, b, c:
design <- list( A=letters[1:3], B = c("low","high"))
GRF( design, 40 )
#> A B Freq
#> 1 a low 5
#> 2 b low 8
#> 3 c low 5
#> 4 a high 13
#> 5 b high 3
#> 6 c high 6
# This last one has three factors, for a total of 3 x 2 x 2 = 12 cells
design <- list( A=letters[1:3], B = c("low","high"), C = c("cat","dog"))
GRF( design, 100 )
#> A B C Freq
#> 1 a low cat 14
#> 2 b low cat 3
#> 3 c low cat 10
#> 4 a high cat 10
#> 5 b high cat 7
#> 6 c high cat 4
#> 7 a low dog 10
#> 8 b low dog 5
#> 9 c low dog 5
#> 10 a high dog 9
#> 11 b high dog 9
#> 12 c high dog 14
# To specify unequal probabilities, use
design <- list( A=letters[1:3], B = c("low","high"))
GRF( design, 100, c(.05, .05, .35, .35, .10, .10 ) )
#> A B Freq
#> 1 a low 4
#> 2 b low 9
#> 3 c low 37
#> 4 a high 28
#> 5 b high 9
#> 6 c high 13
# The name of the column containing the frequencies can be changes
GRF( design, 100, f="patate")
#> A B patate
#> 1 a low 17
#> 2 b low 20
#> 3 c low 20
#> 4 a high 18
#> 5 b high 13
#> 6 c high 12