numsplits<-1000 f=file.choose() text<-readLines(f,encoding="UTF-8") nrows<-length(text) writeLines(text[length(text)], con = "D:\\projects\\basicToR\\junk.txt", sep = "\n", useBytes = FALSE) k<-read.table("D:\\projects\\basicToR\\junk.txt",sep=",") ncolumns<-length(k) print("nrows="); print(nrows) print("ncolumns="); print(ncolumns) t<-read.table(f,sep=",") nentries=0;for (i in t){for (k in i){nentries=nentries+1}} print("nentries=");print(nentries) if(nentries==nrows*ncolumns) { print("Columns, rows, and entries check; we're good to go.") } else{ print("Columns, rows, and entries don't check; please look at your data file to make sure each line has equal no. of entries.") } #t<-read.table(f,sep=",") #for (i in seq(1, nrows, 1)) { # for (j in seq(1, ncolumns, 1)) { # if(j!=ncolumns){ # print(t[i,j]);print(","); # } # else{ # print(t[i,j]);#chr$(10) # } # } #} nfirsthalf<-ncolumns/2 nsechalf<-ncolumns-nfirsthalf sumr<-0 sumsteppedr<-0 for (split in seq(1, numsplits, 1)){ firstsofar=0 sum1=0 count1=0 sum2=0 count2=0 sumsteppedrspear=0 sumsteppedrrulon=0 randnum<-list() score1<-list() randnum2<-list() for (i in seq(1, nfirsthalf, 1)) { randnum[i]=round(ncolumns*runif(1, min=0, max=1)+1) taken<-"no" for (q in seq(1,firstsofar,1)) { if( randnum[i]==randnum[q]) {taken="yes"} } if (taken=="yes"){randnum[i]=round(ncolumns*runif(1, min=0, max=1)+1)} print("Keeper is");print(randnum(i)) firstsofar=firstsofar+1 } for (i in seq(1, nfirsthalf, 1)) { print(randnum[i]) } j<-0 for (i in seq(1, ncolumns, 1)) { taken<-"no" for (q in seq(1, nfirsthalf, 1)) { if (randnum[q]==i){taken="yes"} } if (taken=="no"){ j=j+1 randnum2[j]=i } } for (i in seq(1, nsechalf, 1)) { print("randnum2="); print(randnum2[i]) } sum1=0 count1=0 for (z in seq(1, nrows, 1)) { sum1=0 count1=0 for (i in seq(1, nfirsthalf, 1)) { y=randnum[i] if (t[z,y]!="n"){sum1=sum1+as.numeric(t[z,y]);count1=count1+1} } if(count1==0){print("a split where all were missing! line number=");print(z);count1=1} av1[z]=sum1/count1 score1[z]=av1[z]*nfirsthalf } sum2=0 count2=0 for (z in seq(1, nrows, 1)) { sum2=0 count2=0 for (i in seq(1, nfirsthalf, 1)) { y=randnum2[i] if(t[z,y]!="n"){sum2=sum2+as.numeric(t[z,y]);count2=count2+1} } av2[z]=sum2/count2 score2[z]=av2[z]*nsechalf } for (z in seq(1, nrows, 1)) { scoretot[z]=score1[z]+score2[z] } sumxy=0 sumx=0 sumy=0 sumx2=0 sumy2=0 sumscoretot2=0 sumscoretot=0 for (i in seq(1, nrows, 1)) { sumxy=sumxy+score1[i]*score2[i] sumx=sumx+score1[i] sumy=sumy+score2[i] sumx2=sumx2+(score1[i])^2 sumy2=sumy2+(score2[i])^2 sumscoretot2=sumscoretot2+scoretot[i]^2 sumscoretot=sumscoretot+scoretot[i] } r=(sumxy-sumx*sumy/nrows)/((sumx2-sumx^2/nrows)*(sumy2-sumy^2/nrows))^0.5 sdforx=((1/nrows)*(sumx2-sumx^2/nrows))^0.5 sdfory=((1/nrows)*(sumy2-sumy^2/nrows))^0.5 varfortot=((1/nrows)*(sumscoretot2-sumscoretot^2/nrows)) steppedrspear=(2*r)/(1+r) steppedrrulon=4*r*sdforx*sdfory/varfortot sumsteppedrspear=sumsteppedrspear+steppedrspear sumsteppedrrulon=sumsteppedrrulon+steppedrrulon } avsteppedrspear=sumsteppedrspear/numsplits print("average of stepped up r's, using Spearman method=");print(avsteppedrspear) avsteppedrrulon=sumsteppedrrulon/numsplits print("average of stepped up r's, using Rulon method="); print(avsteppedrrulon) sumvariances=0 for (i in seq(1, ncolumns, 1)) { sumfirsts=0 sumsq=0 variance=0 for (j in seq(1, nrows, 1)) { sumfirsts=sumfirsts+as.numeric(t[j,i]) sumsq=sumsq+(as.numeric(t[j,i]))^2 } sfs=sumfirsts^2 variance=(1/nrows)*(sumsq-sfs/nrows) sumvariances=sumvariances+variance } for (i in seq(1, ncolumns, 1)) { mean=0 sumdevs2=0 sumfirsts=0 for (j in seq(1, nrows, 1)) { sumfirsts=sumfirsts+as.numeric(t[j,i]) } mean=sumfirsts/nrows for (j in seq(1, nrows, 1)) { sumdevs2=sumdevs2+(as.numeric(t[j,i])-mean)^2 } sumvariances=sumvariances+sumdevs2/nrows } alphatrad=(ncolumns/(ncolumns-1))*(1-sumvariances/varfortot) print("alphatrad=");print(alphatrad)