diff --git a/Modules/simirt.R b/Modules/simirt.R index e69de29..15aabb1 100644 --- a/Modules/simirt.R +++ b/Modules/simirt.R @@ -0,0 +1,65 @@ +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 + } + + + + + +} + + + + + + + + + + + + + +} diff --git a/Modules/simirt.ado b/Modules/simirt.ado index 491aca8..1f06c83 100644 --- a/Modules/simirt.ado +++ b/Modules/simirt.ado @@ -49,7 +49,7 @@ program define simirt , rclass version 8.0 -syntax [, NBObs(integer 2000) Dim(string) MU(string) COV(string) COVMatrix(string) DISc(string) DIFf(string) PMIN(string) PMAX(string) ACC(string) clear STOre(string) REPlace PREFix(string) DRAW drawall ICC GRoup(real 0) noRANDom DELtagroup(real 0) rsm1(string) rsm2(string) THReshold TITle(string) PCM(string) id(string) GENProba GENIcc] +syntax [, NBObs(integer 2000) Dim(string) MU(string) COV(string) COVMatrix(string) DISc(string) DIFf(string) PMIN(string) PMAX(string) ACC(string) clear STOre(string) REPlace PREFix(string) DRAW drawall ICC GRoup(real 0) noRANDom DELtagroup(real 0) rsm1(string) rsm2(string) THReshold TITle(string) PCM(string) id(string) GENProba GENIcc] /******************************************************************************** @@ -112,6 +112,12 @@ if "`dim'"!="" { local nbdiff:word count `diff' } } + + + + + + else if "`dim'"==""{ if "`diff'"==""&"`pcm'"=="" { di in red "{p 0 0 0}You must indicate the number of items to simulate with the {hi:dim}, the {hi:pcm} or the {hi:diff} option(s)."