You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.5 KiB
R
66 lines
1.5 KiB
R
simIRT <- function(NBOBS=2000,DIM,MU,COV,COVM,DIS,DIF,PMI,PMAX,ACC,CLEAR,STORE,REP,PREF,DRAW,
|
|
DRAWALL,ICC,GR=0,RAND,DEL=0,RSM1,RSM2,THR,TIT,PCM,ID,GENP,GENI) {
|
|
|
|
if (GR < 0 | GR > 1) {
|
|
stop('Error 198: The GR option defines a probability. The values defined by this option must be greater (or equal) to 0 and lesser (or equal) to 1.')
|
|
}
|
|
|
|
if ( is.null(CLEAR) & is.null(STORE) ) {
|
|
stop('Error 198: You must use at least one of these two options: clear and/or store.')
|
|
}
|
|
|
|
if (!is.null(DIM)) {
|
|
nbdim <- length(DIM)
|
|
if (nbdim > 2 & is.null(COVM)) {
|
|
stop('Error 198: You can simulate data with one or two dimensions, and you have indicated more dimensions in the DIM option. Please correct it.')
|
|
}
|
|
|
|
if (!is.null(COVM)) {
|
|
nbrowcovm <- nrow(COVM)
|
|
if (nbdim != nbrowcovm) {
|
|
stop('Error 198: DIM and COVM dimension mismatch. Please correct.')
|
|
}
|
|
}
|
|
|
|
nbitems <- sum(DIM)
|
|
|
|
if (!is.null(DIF)) {
|
|
nbdiff <- length(DIF)
|
|
tmp <- DIF[1]
|
|
if (tmp=='gauss' | tmp=='uniform') {
|
|
typediff <- tmp
|
|
}
|
|
else if (nbdiff != nbitems) {
|
|
stop('Error 198: "You have indicated a number of difficulty parameters (DIF option) different of the number of items to simulate (DIM option). Please correct these options.')
|
|
}
|
|
}
|
|
|
|
else if (is.null(DIF)) {
|
|
DIF <- vector(mode='list', length=DIM)
|
|
for (d in seq(1,DIM)) {
|
|
DIF[[d]] <- c('gauss',0,1)
|
|
}
|
|
typediff <- 'gauss'
|
|
nbdiff <- length(DIF)*3
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|