## First must create descriptions for Observables. observables <- list(isCorrect=varDescription(name="isCorrect",role="Observable", levels=c("1","0")), pc2=varDescription(name="pc2",role="Observable", levels=c("2","1","0")), pc3=varDescription(name="pc3",role="Observable", levels=c("3","2","1","0")), pc4=varDescription(name="pc4",role="Observable", levels=c("4","3","2","1","0")) ) readQ <- read.Q("Q-Reading.csv") readSM <- parseGmModel("CompensatoryModel/ReadingCommonality.gm.xml","SM") QSkillNames(readQ) readSM$variables QSkillNames(readQ) <- c("ReadingWordMeaning", "ReadingSpecificInfo", "ReadingConnectInfo", "ReadingSynOrganize") readQFormA <- readQ[readQ$FormCode=="ReadA",] readQFormB <- readQ[readQ$FormCode=="ReadB",] anchorsA <- c("WordA"="ReadingWordMeaning", "SpecA"="ReadingSpecificInfo", "ConnectA"="ReadingConnectInfo", "SynthA"="ReadingSynOrganize") anchorsB <- c("WordB"="ReadingWordMeaning", "SpecB"="ReadingSpecificInfo", "ConnectB"="ReadingConnectInfo", "SynthB"="ReadingSynOrganize") #readProf <- QProficiencyVars(QSkillNames(readQ),c("Higest","High","Medium","Low","Lowest")) readAMD <- QbuildAMD(readQ,readSM,observables) readAMD <- addStatsForVars(readAMD,c("margin"="Bayes Net Margin", "MAP"="Bayes Net Mode")) readAMD$missingCodes <- list("NA"=MissingCode(type="NA",handler="Ignore", xmlCode="X",checksum="X"), # Mark PINS as NAs. "Omit"=MissingCode(type="Omit",handler="Low", xmlCode="M",checksum="M"), "Not Reached"=MissingCode(type="Not Reached",handler="Ignore", xmlCode="N",checksum="N"), "Invalid"=MissingCode(type="Ivalid",handler="Error")) writeAMD(readAMD,"ReadingModel") saveXML(xmlTaskList(readQ,getECDIDCaf(readSM$id),c(anchorsA,anchorsB)), "Task/ReadingAllForms.tdd.xml") saveXML(xmlTaskList(readQ[readQ$FormCode=="ReadA",],getECDIDCaf(readSM$id), anchorsA), paste("Task",paste("ReadA","tdd.xml",sep="."),sep=.Platform$file.sep)) saveXML(xmlTaskList(readQ[readQ$FormCode=="ReadB",],getECDIDCaf(readSM$id), anchorsB), paste("Task",paste("ReadB","tdd.xml",sep="."),sep=.Platform$file.sep)) demographics <- list(AppointmentNO="String", DOB="String", Country="String", Tcenter="String", Ques1="String", Ques2=c("M"="Male", "F"="Female", ""="NA"), Ques3="String", Ques8="String", Ques11="String", RawRC="Integer", RawLC="Integer", RawWR="Real", RawSP="Integer", ScaleRC="Integer", ScaleLC="Integer", ScaleSP="Integer", ScaleWR="Integer", ScaleTot="Integer",Dummy="String") saveXML(xmlPretestDescription(readQFormA,getECDIDCaf(readSM$id),observables, appID="NGTOEFL-Reading-FormA", missingHandlers= recodeMissingHandlers(readAMD$missingCodes), demographics = demographics, itemColPrefix="r"), "Task/FormAUnscored.pd.xml")