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)