## ----get---------------------------------------------------------------------- library(PP) data(fourpl_df) dim(fourpl_df) head(fourpl_df) # extracting the information diff_par <- attr(fourpl_df,"diffpar") slope_par <- attr(fourpl_df,"slopes") ## ----check-------------------------------------------------------------------- # extract items and transform the data.frame to matrix itmat <- as.matrix(fourpl_df[,-(1:2)]) # are there any full scores? fullsc <- apply(itmat,1,function(x) (sum(x,na.rm=TRUE)+sum(is.na(x))) == length(x)) any(fullsc) # are there 0 scores? nullsc <- apply(itmat,1,function(x) sum(x,na.rm=TRUE) == 0) any(nullsc) # are there missing values? how many and where? nasc <- apply(itmat,1,function(x) sum(is.na(x))) any(nasc > 0) #which(nasc) # is our data dichotomous as expected? apply(itmat,2,function(x) table(x)) # are there any duplicates? rdup <- duplicated(itmat) sum(rdup) ## ----decide------------------------------------------------------------------- library(PP) res1plmle <- PP_4pl(respm = itmat, thres = diff_par, slopes = slope_par, type = "mle") summary(res1plmle) ## ----edit--------------------------------------------------------------------- dafest <- data.frame(fourpl_df, res1plmle$resPP$resPP) head(dafest,10) ## ----rerun-------------------------------------------------------------------- library(PP) res1plwle <- PP_4pl(respm = itmat,thres = diff_par, slopes = slope_par, type = "wle") summary(res1plwle) ## ----ppass-------------------------------------------------------------------- pres <- PPass(fourpl_df, items = 3:14, mod="2PL", thres = diff_par, slopes = slope_par, type = "wle")