#This file is to test the conditional independence of two variable giving 2 parent set. Please read README file before first executing this code. CondIndTwoVar = function (filename = "/home/zgong001/Documents/SprinklerDataset/sprinkler1001.txt", alphalevel = 0.05, methodu="x2", exfilename = "/home/zgong001/Documents/SprinklerDataset/pvalueSorted(sprinkler).xlsx"){ library(bnlearn) result = data.frame() sprinkler <- read.table(filename, header = TRUE) columname = colnames(sprinkler) m=length(columname) x=seq(0,m-1,by=1) colnames(sprinkler)=x columname = colnames(sprinkler) TwoVComb = combn(columname,2) for(jt in 1:ncol(TwoVComb)){ twoV = c(TwoVComb[1,jt], TwoVComb[2,jt]) columnameT = columname[! columname %in% twoV] colComb = combn(columnameT,2) for (j in 1:ncol(colComb)){ citest = ci.test(colComb[1,j], colComb[2,j], twoV, test = methodu, data = sprinkler) lable = paste(paste(colComb[1,j], colComb[2,j],sep=", "), "|", paste(twoV[1], twoV[2], sep=", "), sep=" ") pvalue = citest$p.value CIlist= data.frame("Index" = lable, "pvalue" = pvalue) result = rbind(result, CIlist) } } result2 = result[order(-result[,2]), ] write.xlsx(result2, exfilename, sheetName = "Sheet1", col.names = TRUE, row.names = TRUE, append = FALSE) return(result2) }