Installing the ross
Package
The package can be installed from the command line in R:
devtools::install_github("zief0002/ross")
Using the Ross Package
After installing the package, load it using
library(ross)
The ross
package includes three internal datasets: (1) big.eight
, (2) big.nine
, and (3) top.twenty
. The first two include the original eight and nine teams from the Big Eight and Big Nine conferences, respectively. The third dataset includes the top 20 greatest music videos ever made according to MTV. We will use these datasets to illustrate some of the functionality in the Ross package.
You can of course import your own data for use in these functions. To see how the data should be formatted, we will examine the big.nine
data.
> big.nine
University
1 University of Chicago
2 University of Illinois
3 University of Michigan
4 University of Minnesota
5 Northwestern University
6 Purdue University
7 University of Wisconsin
8 Indiana University
9 University of Iowa
The data are formatted such that all stimuli are recorded in a single column.
Ross Ordering
To optimally space and balance the stimuli, use the function ross.ordering()
. This function requires as its first argument the name of the vector containing the stimuli. The second argument, which is optional, is paper=
. This takes either the logical value of TRUE
or FALSE
. If you want to replicate the tables in (Davison et al., 2012, use paper=TRUE
. For any other application use paper=FALSE
(which is the default if this argument is not included). This will randomly order the stimuli prior to ordering them.
The output from the call to ross.ordering()
(replicating the paper results) is printed below for the first four pairs of stimuli.
> ross.ordering(big.nine, paper = TRUE)
First Stimulus Second Stimulus Block
1 University of Chicago University of Illinois 1
2 University of Iowa University of Michigan 1
3 Indiana University University of Minnesota 1
4 University of Wisconsin Northwestern University 1
Matrix Sampling
To optimally space and balance the stimuli for a matrix sampling design, use the matrix.sampling()
function. This function requires as its first argument the name of the vector containing the stimuli. The second argument, which is optional, is paper=
. This takes either the logical
value of TRUE
or FALSE
. If you want to replicate the tables in (Davison et al., 2012), use paper=TRUE
. For any other application use paper=FALSE
(which is the default if this argument is not included). The argument f=
takes an integer specifying the number of forms to create. If omitted, the default is f=2
.
The output from the call to matrix.sampling()
is printed below for the first of the two forms.
> matrix.sampling(big.nine, paper = TRUE, f = 2)
First Stimulus Second Stimulus Block Form
1 University of Chicago University of Illinois 1 1
2 University of Iowa University of Michigan 1 1
3 Indiana University University of Minnesota 1 1
4 University of Wisconsin Northwestern University 1 1
5 Purdue University University of Chicago 2 1
6 University of Michigan University of Illinois 2 1
7 University of Minnesota University of Iowa 2 1
8 Northwestern University Indiana University 2 1
9 Purdue University University of Michigan 7 1
10 University of Wisconsin University of Illinois 7 1
11 Indiana University University of Iowa 7 1
12 University of Chicago Northwestern University 7 1
13 University of Minnesota Purdue University 8 1
14 University of Michigan University of Wisconsin 8 1
15 University of Illinois Indiana University 8 1
16 University of Iowa University of Chicago 8 1
17 Northwestern University Purdue University 9 1
18 University of Minnesota University of Wisconsin 9 1
Choosing the Number of Forms
The forms()
function can be used to help choose the ideal number of forms to use in a matrix sampling design. This function takes as its only argument the number of stimuli to be used in the study.
For example, if you had 9 stimuli,
> forms(9)
1, 2, or 4 forms are ideal.
Incomplete Design
To optimally space and balance the stimuli for an incomplete design, use the incomplete.design()
function. This function requires as its first argument the name of the vector containing the stimuli. The second argument, which is optional, is paper=
. This takes either the logical
value of TRUE
or FALSE
. If you want to replicate the tables in (Davison et al., 2012), use paper=TRUE
. For any other application use paper=FALSE
(which is the default if this argument is not included).
For an odd number of stimuli, there are two additional arguments that need to be provided. The argument f=
takes an integer specifying the number of forms to create. If omitted, the default is f=2
. This serves the same functionality as in the matrix.sampling()
function. The second additional argument needed is samp=
. This argument also takes an integer value which specifies the number of forms to randomly sample.
The syntax below randomly samples a single form (of the two created) for use in an incomplete design.
> incomplete.design(big.nine, paper = TRUE, f = 2, samp = 1)
First Stimulus Second Stimulus Block Form
1 University of Chicago University of Illinois 1 1
2 University of Iowa University of Michigan 1 1
3 Indiana University University of Minnesota 1 1
4 University of Wisconsin Northwestern University 1 1
5 Purdue University University of Chicago 2 1
6 University of Michigan University of Illinois 2 1
7 University of Minnesota University of Iowa 2 1
8 Northwestern University Indiana University 2 1
9 Purdue University University of Michigan 7 1
10 University of Wisconsin University of Illinois 7 1
11 Indiana University University of Iowa 7 1
12 University of Chicago Northwestern University 7 1
13 University of Minnesota Purdue University 8 1
14 University of Michigan University of Wisconsin 8 1
15 University of Illinois Indiana University 8 1
16 University of Iowa University of Chicago 8 1
17 Northwestern University Purdue University 9 1
18 University of Minnesota University of Wisconsin 9 1
For an even number of stimuli, the f=
argument is omitted. The samp=
argument again takes an integer, but for an even number of stimuli, this specifies the number of blocks to sample from the Ross ordering.
The syntax below randomly samples a two blocks for use in an incomplete design.
> incomplete.design(big.eight, paper = TRUE, samp = 2)
First Stimulus Second Stimulus Block
1 University of Chicago University of Illinois 1
3 University of Iowa University of Minnesota 1
4 Indiana University Northwestern University 1
5 University of Wisconsin University of Chicago 1
First Stimulus Second Stimulus Block
6 University of Michigan University of Illinois 2
8 Northwestern University University of Iowa 2
9 University of Wisconsin Indiana University 2
10 University of Chicago University of Michigan 2
References
Cohen, H. S., & Davison, M. L. (1973). Jiffy-scale: A FORTRAN IV program for generating ross-ordered paired comparisons. Behavioral Science, 18, 76.
Davison, M. L., Zieffler, A., Cabrera, J., Karl, S. R., & Cohen, H. S. (2012). Automated assembly of optimally spaced and balanced paired comparisons: Controlling order effects. Behavioral Research Methods, 44(3), 753–764. doi: 10.3758/s13428-011-0170-0
Ross, R. T. (1934). Optimum orders for the presentation of pairs in the method of paired comparisons. Journal of Educational Psychology, 25, 375–382.
Release Notes
We began writing the package in 2010. The package was released in September 26, 2011 on R-Forge as opc
(optimal paired comparisons). On March 16, 2017 the project was
moved to Github and renamed Ross
. On February 19, 2018 the project was renamed ross
and the documentation page was updated using the Jekyll Documentation Theme.