bubbles<-function(filename, bootstrapsize, confidence.level){ ## code for R library(rgl) readData <- read.table(file=filename, sep=",", header=F) test <- dim(readData) if(test[1]>6){ print('Error - more than six rows / individuals - only first six analysed') readData <- readData[1:6,] } if(test[2]>19){ print('Error - more than 19 behaviours / columns - only first 19 used') readData <- readData[,1:18] } if(test[2]<19){ readData[,(test[2]+1):19] <- 0 } readData2 <- readData for(x in 1:test[1]){ if(sum(readData[x,]) != 100){ print('error - behavioural percentages do not add up to 100!') for(y in 1:19){ if(readData[x,y]%%1 != 0 ){ print('Error - not integers') } } } } readData3 <- readData readData <- array(0,dim=c(test[1],100)) for(x in 1:test[1]){ count<-1 count2<-0 count3<-1 for(y in 1:19){ point.data <- readData3[x,y] count2<- count2+point.data readData[x,count:count2]<-count3 count<-count2 count3<-count3+1 } } #readData2 <- read.table("Tiger_Summary.csv", sep=",", header=F) boot.strap.size <- bootstrapsize if(boot.strap.size < 1000){ print('bootstrap size is too low - increase to at least 1000 and ideally 10000') } size_array <- dim(readData) case_number <- size_array[1] size_array <- size_array[2] dta1 <- 1:size_array#array(0,dim=c(size_array,1)) dta2 <- 1:size_array#array(0,dim=c(size_array,1)) dta3 <- 1:size_array#array(0,dim=c(size_array,1)) dta4 <- 1:size_array#array(0,dim=c(size_array,1)) dta5 <- 1:size_array#array(0,dim=c(size_array,1)) dta6 <- 1:size_array#array(0,dim=c(size_array,1)) for(x in 1:test[1]){ assign(paste('dta', x, sep=""),readData[x,]) } length1<-length(dta1) #length1 <- length1[1] length2<-length(dta2) #length2 <- length2[1] length3<-length(dta3) #length3 <- length3[1] length4<-length(dta4) #length4 <- length4[1] length5<-length(dta5) #length5 <- length5[1] length6<-length(dta6) #length6 <- length6[1] percent <- confidence.level/100 percent <- 1-percent percent <- percent/2 lower <- percent upper <- 1-percent #print(upper) #print(lower) # 95%CI Change to 0.1 and 0.9 for 80% or 0.5 and 0.9 for 90% CI site1.x <- array(NA, (boot.strap.size)) ; site1.x.CI <- 1:2 site2.x <- array(NA, (boot.strap.size)) ; site2.x.CI <- 1:2 site3.x <- array(NA, (boot.strap.size)) ; site3.x.CI <- 1:2 site4.x <- array(NA, (boot.strap.size)) ; site4.x.CI <- 1:2 site5.x <- array(NA, (boot.strap.size)) ; site5.x.CI <- 1:2 site6.x <- array(NA, (boot.strap.size)) ; site6.x.CI <- 1:2 site7.x <- array(NA, (boot.strap.size)) site8.x <- array(NA, (boot.strap.size)) site9.x <- array(NA, (boot.strap.size)) site10.x <- array(NA, (boot.strap.size)) site11.x <- array(NA, (boot.strap.size)) site12.x <- array(NA, (boot.strap.size)) site1.y <- array(NA, (boot.strap.size)) ; site1.y.CI <- 1:2 site2.y <- array(NA, (boot.strap.size)) ; site2.y.CI <- 1:2 site3.y <- array(NA, (boot.strap.size)) ; site3.y.CI <- 1:2 site4.y <- array(NA, (boot.strap.size)) ; site4.y.CI <- 1:2 site5.y <- array(NA, (boot.strap.size)) ; site5.y.CI <- 1:2 site6.y <- array(NA, (boot.strap.size)) ; site6.y.CI <- 1:2 site7.y <- array(NA, (boot.strap.size)) site8.y <- array(NA, (boot.strap.size)) site9.y <- array(NA, (boot.strap.size)) site10.y <- array(NA,(boot.strap.size)) site11.y <- array(NA,(boot.strap.size)) site12.y <- array(NA,(boot.strap.size)) site1.z <- array(NA, (boot.strap.size)) ; site1.z.CI <- 1:2 site2.z <- array(NA, (boot.strap.size)) ; site2.z.CI <- 1:2 site3.z <- array(NA, (boot.strap.size)) ; site3.z.CI <- 1:2 site4.z <- array(NA, (boot.strap.size)) ; site4.z.CI <- 1:2 site5.z <- array(NA, (boot.strap.size)) ; site5.z.CI <- 1:2 site6.z <- array(NA, (boot.strap.size)) ; site6.z.CI <- 1:2 site7.z <- array(NA, (boot.strap.size)) site8.z <- array(NA, (boot.strap.size)) site9.z <- array(NA, (boot.strap.size)) site10.z <- array(NA,(boot.strap.size)) site11.z <- array(NA,(boot.strap.size)) site12.z <- array(NA,(boot.strap.size)) #readData2 <- read.table("Tiger_Summary.csv", sep=",", header=F) sizeData2 <- dim(readData2) sizeData2 <- sizeData2[2] readData2 <- as.matrix(readData2) baseline <- array(0, dim = c(6,sizeData2)) baseline[1,] <- 1:19 baseline[2,] <- 1:19 baseline[3,] <- 1:19 baseline[4,] <- 1:19 baseline[5,] <- 1:19 baseline[6,] <- 1:19 size.parameter <- 1.5 for(x in 1:test[1]){ baseline[x,]<-readData2[x,] } baseline <- baseline/2 # baseline[1,] <- readData2[1,] # baseline[1,] <- baseline[1,] / 2 # baseline[2,] <- readData2[2,] # baseline[2,] <- baseline[2,] / 2 # baseline[3,] <- readData2[3,] # baseline[3,] <- baseline[3,] / 2 # baseline[4,] <- readData2[4,] # baseline[4,] <- baseline[4,] / 2 # baseline[5,] <- 1:19 # not used in this example # baseline[5,] <- baseline[5,] / 2 # baseline[6,] <- 1:19 # not used in this example # baseline[6,] <- baseline[6,] / 2 baseline.prfit <- prcomp(baseline) print(summary(baseline.prfit)) baseline.site1.x <- predict(baseline.prfit)[1,1] baseline.site2.x <- predict(baseline.prfit)[2,1] baseline.site3.x <- predict(baseline.prfit)[3,1] baseline.site4.x <- predict(baseline.prfit)[4,1] baseline.site5.x <- predict(baseline.prfit)[5,1] baseline.site6.x <- predict(baseline.prfit)[6,1] baseline.site1.y <- predict(baseline.prfit)[1,2] baseline.site2.y <- predict(baseline.prfit)[2,2] baseline.site3.y <- predict(baseline.prfit)[3,2] baseline.site4.y <- predict(baseline.prfit)[4,2] baseline.site5.y <- predict(baseline.prfit)[5,2] baseline.site6.y <- predict(baseline.prfit)[6,2] baseline.site1.z <- predict(baseline.prfit)[1,3] baseline.site2.z <- predict(baseline.prfit)[2,3] baseline.site3.z <- predict(baseline.prfit)[3,3] baseline.site4.z <- predict(baseline.prfit)[4,3] baseline.site5.z <- predict(baseline.prfit)[5,3] baseline.site6.z <- predict(baseline.prfit)[6,3] for(x in 1:boot.strap.size){ samp1 <- array(0, dim = c(100,1)) samp2 <- array(0, dim = c(100,1)) samp3 <- array(0, dim = c(100,1)) samp4 <- array(0, dim = c(100,1)) samp5 <- array(0, dim = c(100,1)) samp6 <- array(0, dim = c(100,1)) for(sample.size in 1:100){ samp1[sample.size] <- dta1[round(runif(1)*(length1-1) + 1 )] samp2[sample.size] <- dta2[round(runif(1)*(length2-1) + 1 )] samp3[sample.size] <- dta3[round(runif(1)*(length3-1) + 1 )] samp4[sample.size] <- dta4[round(runif(1)*(length4-1) + 1 )] samp5[sample.size] <- dta5[round(runif(1)*(length4-1) + 1 )] samp6[sample.size] <- dta6[round(runif(1)*(length4-1) + 1 )] } make.array <- array(0,dim=c(12,19)) for(sample.size in 1:50){ if(samp1[sample.size] == 1){ make.array[1,1] = make.array[1,1] + 1} if(samp1[sample.size] == 2){ make.array[1,2] = make.array[1,2] + 1} if(samp1[sample.size] == 3){ make.array[1,3] = make.array[1,3] + 1} if(samp1[sample.size] == 4){ make.array[1,4] = make.array[1,4] + 1} if(samp1[sample.size] == 5){ make.array[1,5] = make.array[1,5] + 1} if(samp1[sample.size] == 6){ make.array[1,6] = make.array[1,6] + 1} if(samp1[sample.size] == 7){ make.array[1,7] = make.array[1,7] + 1} if(samp1[sample.size] == 8){ make.array[1,8] = make.array[1,8] + 1} if(samp1[sample.size] == 9){ make.array[1,9] = make.array[1,9] + 1} if(samp1[sample.size] == 10){ make.array[1,10] = make.array[1,10] + 1} if(samp1[sample.size] == 11){ make.array[1,11] = make.array[1,11] + 1} if(samp1[sample.size] == 12){ make.array[1,12] = make.array[1,12] + 1} if(samp1[sample.size] == 13){ make.array[1,13] = make.array[1,13] + 1} if(samp1[sample.size] == 14){ make.array[1,14] = make.array[1,14] + 1} if(samp1[sample.size] == 15){ make.array[1,15] = make.array[1,15] + 1} if(samp1[sample.size] == 16){ make.array[1,16] = make.array[1,16] + 1} if(samp1[sample.size] == 17){ make.array[1,17] = make.array[1,17] + 1} if(samp1[sample.size] == 18){ make.array[1,18] = make.array[1,18] + 1} if(samp1[sample.size] == 19){ make.array[1,19] = make.array[1,19] + 1} if(samp2[sample.size] == 1){ make.array[2,1] = make.array[2,1] + 1} if(samp2[sample.size] == 2){ make.array[2,2] = make.array[2,2] + 1} if(samp2[sample.size] == 3){ make.array[2,3] = make.array[2,3] + 1} if(samp2[sample.size] == 4){ make.array[2,4] = make.array[2,4] + 1} if(samp2[sample.size] == 5){ make.array[2,5] = make.array[2,5] + 1} if(samp2[sample.size] == 6){ make.array[2,6] = make.array[2,6] + 1} if(samp2[sample.size] == 7){ make.array[2,7] = make.array[2,7] + 1} if(samp2[sample.size] == 8){ make.array[2,8] = make.array[2,8] + 1} if(samp2[sample.size] == 9){ make.array[2,9] = make.array[2,9] + 1} if(samp2[sample.size] == 10){ make.array[2,10] = make.array[2,10] + 1} if(samp2[sample.size] == 11){ make.array[2,11] = make.array[2,11] + 1} if(samp2[sample.size] == 12){ make.array[2,12] = make.array[2,12] + 1} if(samp2[sample.size] == 13){ make.array[2,13] = make.array[2,13] + 1} if(samp2[sample.size] == 14){ make.array[2,14] = make.array[2,14] + 1} if(samp2[sample.size] == 15){ make.array[2,15] = make.array[2,15] + 1} if(samp2[sample.size] == 16){ make.array[2,16] = make.array[2,16] + 1} if(samp2[sample.size] == 17){ make.array[2,17] = make.array[2,17] + 1} if(samp2[sample.size] == 18){ make.array[2,18] = make.array[2,18] + 1} if(samp2[sample.size] == 19){ make.array[2,19] = make.array[2,19] + 1} if(samp3[sample.size] == 1){ make.array[3,1] = make.array[3,1] + 1} if(samp3[sample.size] == 2){ make.array[3,2] = make.array[3,2] + 1} if(samp3[sample.size] == 3){ make.array[3,3] = make.array[3,3] + 1} if(samp3[sample.size] == 4){ make.array[3,4] = make.array[3,4] + 1} if(samp3[sample.size] == 5){ make.array[3,5] = make.array[3,5] + 1} if(samp3[sample.size] == 6){ make.array[3,6] = make.array[3,6] + 1} if(samp3[sample.size] == 7){ make.array[3,7] = make.array[3,7] + 1} if(samp3[sample.size] == 8){ make.array[3,8] = make.array[3,8] + 1} if(samp3[sample.size] == 9){ make.array[3,9] = make.array[3,9] + 1} if(samp3[sample.size] == 10){ make.array[3,10] = make.array[3,10] + 1} if(samp3[sample.size] == 11){ make.array[3,11] = make.array[3,11] + 1} if(samp3[sample.size] == 12){ make.array[3,12] = make.array[3,12] + 1} if(samp3[sample.size] == 13){ make.array[3,13] = make.array[3,13] + 1} if(samp3[sample.size] == 14){ make.array[3,14] = make.array[3,14] + 1} if(samp3[sample.size] == 15){ make.array[3,15] = make.array[3,15] + 1} if(samp3[sample.size] == 16){ make.array[3,16] = make.array[3,16] + 1} if(samp3[sample.size] == 17){ make.array[3,17] = make.array[3,17] + 1} if(samp3[sample.size] == 18){ make.array[3,18] = make.array[3,18] + 1} if(samp3[sample.size] == 19){ make.array[3,19] = make.array[3,19] + 1} if(samp4[sample.size] == 1){ make.array[4,1] = make.array[4,1] + 1} if(samp4[sample.size] == 2){ make.array[4,2] = make.array[4,2] + 1} if(samp4[sample.size] == 3){ make.array[4,3] = make.array[4,3] + 1} if(samp4[sample.size] == 4){ make.array[4,4] = make.array[4,4] + 1} if(samp4[sample.size] == 5){ make.array[4,5] = make.array[4,5] + 1} if(samp4[sample.size] == 6){ make.array[4,6] = make.array[4,6] + 1} if(samp4[sample.size] == 7){ make.array[4,7] = make.array[4,7] + 1} if(samp4[sample.size] == 8){ make.array[4,8] = make.array[4,8] + 1} if(samp4[sample.size] == 9){ make.array[4,9] = make.array[4,9] + 1} if(samp4[sample.size] == 10){ make.array[4,10] = make.array[4,10] + 1} if(samp4[sample.size] == 11){ make.array[4,11] = make.array[4,11] + 1} if(samp4[sample.size] == 12){ make.array[4,12] = make.array[4,12] + 1} if(samp4[sample.size] == 13){ make.array[4,13] = make.array[4,13] + 1} if(samp4[sample.size] == 14){ make.array[4,14] = make.array[4,14] + 1} if(samp4[sample.size] == 15){ make.array[4,15] = make.array[4,15] + 1} if(samp4[sample.size] == 16){ make.array[4,16] = make.array[4,16] + 1} if(samp4[sample.size] == 17){ make.array[4,17] = make.array[4,17] + 1} if(samp4[sample.size] == 18){ make.array[4,18] = make.array[4,18] + 1} if(samp4[sample.size] == 19){ make.array[4,19] = make.array[4,19] + 1} if(samp5[sample.size] == 1){ make.array[5,1] = make.array[5,1] + 1} if(samp5[sample.size] == 2){ make.array[5,2] = make.array[5,2] + 1} if(samp5[sample.size] == 3){ make.array[5,3] = make.array[5,3] + 1} if(samp5[sample.size] == 4){ make.array[5,4] = make.array[5,4] + 1} if(samp5[sample.size] == 5){ make.array[5,5] = make.array[5,5] + 1} if(samp5[sample.size] == 6){ make.array[5,6] = make.array[5,6] + 1} if(samp5[sample.size] == 7){ make.array[5,7] = make.array[5,7] + 1} if(samp5[sample.size] == 8){ make.array[5,8] = make.array[5,8] + 1} if(samp5[sample.size] == 9){ make.array[5,9] = make.array[5,9] + 1} if(samp5[sample.size] == 10){ make.array[5,10] = make.array[5,10] + 1} if(samp5[sample.size] == 11){ make.array[5,11] = make.array[5,11] + 1} if(samp5[sample.size] == 12){ make.array[5,12] = make.array[5,12] + 1} if(samp5[sample.size] == 13){ make.array[5,13] = make.array[5,13] + 1} if(samp5[sample.size] == 14){ make.array[5,14] = make.array[5,14] + 1} if(samp5[sample.size] == 15){ make.array[5,15] = make.array[5,15] + 1} if(samp5[sample.size] == 16){ make.array[5,16] = make.array[5,16] + 1} if(samp5[sample.size] == 17){ make.array[5,17] = make.array[5,17] + 1} if(samp5[sample.size] == 18){ make.array[5,18] = make.array[5,18] + 1} if(samp5[sample.size] == 19){ make.array[5,19] = make.array[5,19] + 1} if(samp6[sample.size] == 1){ make.array[6,1] = make.array[6,1] + 1} if(samp6[sample.size] == 2){ make.array[6,2] = make.array[6,2] + 1} if(samp6[sample.size] == 3){ make.array[6,3] = make.array[6,3] + 1} if(samp6[sample.size] == 4){ make.array[6,4] = make.array[6,4] + 1} if(samp6[sample.size] == 5){ make.array[6,5] = make.array[6,5] + 1} if(samp6[sample.size] == 6){ make.array[6,6] = make.array[6,6] + 1} if(samp6[sample.size] == 7){ make.array[6,7] = make.array[6,7] + 1} if(samp6[sample.size] == 8){ make.array[6,8] = make.array[6,8] + 1} if(samp6[sample.size] == 9){ make.array[6,9] = make.array[6,9] + 1} if(samp6[sample.size] == 10){ make.array[6,10] = make.array[6,10] + 1} if(samp6[sample.size] == 11){ make.array[6,11] = make.array[6,11] + 1} if(samp6[sample.size] == 12){ make.array[6,12] = make.array[6,12] + 1} if(samp6[sample.size] == 13){ make.array[6,13] = make.array[6,13] + 1} if(samp6[sample.size] == 14){ make.array[6,14] = make.array[6,14] + 1} if(samp6[sample.size] == 15){ make.array[6,15] = make.array[6,15] + 1} if(samp6[sample.size] == 16){ make.array[6,16] = make.array[6,16] + 1} if(samp6[sample.size] == 17){ make.array[6,17] = make.array[6,17] + 1} if(samp6[sample.size] == 18){ make.array[6,18] = make.array[6,18] + 1} if(samp6[sample.size] == 19){ make.array[6,19] = make.array[6,19] + 1} } #readData3 <- read.table("Tiger_Summary2.csv", sep=",", header=F)# note, this file must contain 19 columns - those not assigned to a behaviour should read 0 readData3 <- as.matrix(readData3) make.array[7,] <- 1:19 make.array[7,] <- make.array[7,]/2 make.array[8,] <- 1:19 make.array[8,] <- make.array[8,]/2 make.array[9,] <- 1:19 make.array[9,] <- make.array[9,]/2 make.array[10,] <- 1:19 make.array[10,] <- make.array[10,]/2 make.array[11,] <- 1:19 make.array[11,] <- make.array[11,]/2 make.array[12,] <- 1:19 make.array[12,] <- make.array[12,]/2 for(xx in 1:test[1]){ make.array[(6+xx),] <- readData3[xx,] make.array[(6+xx),] <- make.array[(6+xx),] / 2 } # make.array[7,] <- readData3[1,] # make.array[7,] <- make.array[7,] /2 # make.array[8,] <- readData3[2,] # make.array[8,] <- make.array[8,] /2 # make.array[9,] <- readData3[3,] # make.array[9,] <- make.array[9,] /2 # make.array[10,] <- readData3[4,] # make.array[10,] <- make.array[10,] /2 # make.array[11,] <- 1:19 # not used here # make.array[11,] <- make.array[11,] /2 # make.array[12,] <- 1:19 # not used here - must be 19 in length # make.array[12,] <- make.array[12,] /2 prfit <- prcomp(make.array) site1.x[x] <- predict(prfit)[1,1] site2.x[x] <- predict(prfit)[2,1] site3.x[x] <- predict(prfit)[3,1] site4.x[x] <- predict(prfit)[4,1] site5.x[x] <- predict(prfit)[5,1] site6.x[x] <- predict(prfit)[6,1] site7.x[x] <- predict(prfit)[7,1] site8.x[x] <- predict(prfit)[8,1] site9.x[x] <- predict(prfit)[9,1] site10.x[x] <- predict(prfit)[10,1] site11.x[x] <- predict(prfit)[11,1] site12.x[x] <- predict(prfit)[12,1] site1.y[x] <- predict(prfit)[1,2] site2.y[x] <- predict(prfit)[2,2] site3.y[x] <- predict(prfit)[3,2] site4.y[x] <- predict(prfit)[4,2] site5.y[x] <- predict(prfit)[5,2] site6.y[x] <- predict(prfit)[6,2] site7.y[x] <- predict(prfit)[7,2] site8.y[x] <- predict(prfit)[8,2] site9.y[x] <- predict(prfit)[9,2] site10.y[x] <- predict(prfit)[10,2] site11.y[x] <- predict(prfit)[11,2] site12.y[x] <- predict(prfit)[12,2] site1.z[x] <- predict(prfit)[1,3] site2.z[x] <- predict(prfit)[2,3] site3.z[x] <- predict(prfit)[3,3] site4.z[x] <- predict(prfit)[4,3] site5.z[x] <- predict(prfit)[5,3] site6.z[x] <- predict(prfit)[6,3] site7.z[x] <- predict(prfit)[7,3] site8.z[x] <- predict(prfit)[8,3] site9.z[x] <- predict(prfit)[9,3] site10.z[x] <- predict(prfit)[10,3] site11.z[x] <- predict(prfit)[11,3] site12.z[x] <- predict(prfit)[12,3] if(abs(baseline.site1.x - site7.x[x]) > abs(baseline.site1.x * size.parameter)){ x.dist.site1<-baseline.site1.x + site7.x[x] site1.x[x] <- site1.x[x] * -1 } else{ x.dist.site1 <- baseline.site1.x - site7.x[x] } # site 7 is the full data set of the bootstrapped site 1 if(abs(baseline.site2.x - site8.x[x]) > abs(baseline.site2.x * size.parameter)){ x.dist.site2<-baseline.site2.x + site8.x[x] site2.x[x] <- site2.x[x] * -1 } else{ x.dist.site2 <- baseline.site2.x - site8.x[x] } if(abs(baseline.site3.x - site9.x[x]) > abs(baseline.site3.x * size.parameter)){ x.dist.site3<-baseline.site3.x + site9.x[x] site3.x[x] <- site3.x[x] * -1 } else{ x.dist.site3 <- baseline.site3.x - site9.x[x] } if(abs(baseline.site4.x - site10.x[x]) > abs(baseline.site4.x * size.parameter)){ x.dist.site4<-baseline.site4.x + site10.x[x] site4.x[x] <- site4.x[x] * -1 } else{ x.dist.site4 <- baseline.site4.x - site10.x[x] } if(abs(baseline.site5.x - site11.x[x]) > abs(baseline.site5.x * size.parameter)){ x.dist.site5<-baseline.site5.x + site11.x[x] site5.x[x] <- site5.x[x] * -1 } else{ x.dist.site5 <- baseline.site5.x - site11.x[x] } if(abs(baseline.site6.x - site12.x[x]) > abs(baseline.site6.x * size.parameter)){ x.dist.site6<-baseline.site6.x + site12.x[x] site6.x[x] <- site6.x[x] * -1 } else{ x.dist.site6 <- baseline.site6.x - site12.x[x] } if(abs(baseline.site1.y - site7.y[x]) > abs(baseline.site1.y * size.parameter)){ y.dist.site1<-baseline.site1.y + site7.y[x] site1.y[x] <- site1.y[x] * -1 } else{ y.dist.site1 <- baseline.site1.y - site7.y[x] } # site 7 is the full data set of the bootstrapped site 1 if(abs(baseline.site2.y - site8.y[x]) > abs(baseline.site2.y * size.parameter)){ y.dist.site2<-baseline.site2.y + site8.y[x] site2.y[x] <- site2.y[x] * -1 } else{ y.dist.site2 <- baseline.site2.y - site8.y[x] } if(abs(baseline.site3.y - site9.y[x]) > abs(baseline.site3.y * size.parameter)){ y.dist.site3<-baseline.site3.y + site9.y[x] site3.y[x] <- site3.y[x] * -1 } else{ y.dist.site3 <- baseline.site3.y - site9.y[x] } if(abs(baseline.site4.y - site10.y[x]) > abs(baseline.site4.y * size.parameter)){ y.dist.site4<-baseline.site4.y + site10.y[x] site4.y[x] <- site4.y[x] * -1 } else{ y.dist.site4 <- baseline.site4.y - site10.y[x] } if(abs(baseline.site5.y - site11.y[x]) > abs(baseline.site5.y * size.parameter)){ y.dist.site5<-baseline.site5.y + site11.y[x] site5.y[x] <- site5.y[x] * -1 } else{ y.dist.site5 <- baseline.site5.y - site11.y[x] } if(abs(baseline.site6.y - site12.y[x]) > abs(baseline.site6.y * size.parameter)){ y.dist.site6<-baseline.site6.y + site12.y[x] site6.y[x] <- site6.y[x] * -1 } else{ y.dist.site6 <- baseline.site6.y - site12.y[x] } if(abs(baseline.site1.z - site7.z[x]) > abs(baseline.site1.z * size.parameter)){ z.dist.site1<-baseline.site1.z + site7.z[x] site1.z[x] <- site1.z[x] * -1 } else{ z.dist.site1 <- baseline.site1.z - site7.z[x] } # site 7 is the full data set of the bootstrapped site 1 if(abs(baseline.site2.z - site8.z[x]) > abs(baseline.site2.z * size.parameter)){ z.dist.site2<-baseline.site2.z + site8.z[x] site2.z[x] <- site2.z[x] * -1 } else{ z.dist.site2 <- baseline.site2.z - site8.z[x] } if(abs(baseline.site3.z - site9.z[x]) > abs(baseline.site3.z * size.parameter)){ z.dist.site3<-baseline.site3.z + site9.z[x] site3.z[x] <- site3.z[x] * -1 } else{ z.dist.site3 <- baseline.site3.z - site9.z[x] } if(abs(baseline.site4.z - site10.z[x]) > abs(baseline.site4.z * size.parameter)){ z.dist.site4<-baseline.site4.z + site10.z[x] site4.z[x] <- site4.z[x] * -1 } else{ z.dist.site4 <- baseline.site4.z - site10.z[x] } if(abs(baseline.site5.z - site11.z[x]) > abs(baseline.site5.z * size.parameter)){ z.dist.site5<-baseline.site5.z + site11.z[x] site5.z[x] <- site5.z[x] * -1 } else{ z.dist.site5 <- baseline.site5.z - site11.z[x] } if(abs(baseline.site6.z - site12.z[x]) > abs(baseline.site6.z * size.parameter)){ z.dist.site6<-baseline.site6.z + site12.z[x] site6.z[x] <- site6.z[x] * -1 } else{ z.dist.site6 <- baseline.site6.z - site12.z[x] } site1.x[x] <- x.dist.site1 + site1.x[x] site2.x[x] <- x.dist.site2 + site2.x[x] site3.x[x] <- x.dist.site3 + site3.x[x] site4.x[x] <- x.dist.site4 + site4.x[x] site5.x[x] <- x.dist.site5 + site5.x[x] site6.x[x] <- x.dist.site6 + site6.x[x] site1.y[x] <- y.dist.site1 + site1.y[x] site2.y[x] <- y.dist.site2 + site2.y[x] site3.y[x] <- y.dist.site3 + site3.y[x] site4.y[x] <- y.dist.site4 + site4.y[x] site5.y[x] <- y.dist.site5 + site5.y[x] site6.y[x] <- y.dist.site6 + site6.y[x] site1.z[x] <- z.dist.site1 + site1.z[x] site2.z[x] <- z.dist.site2 + site2.z[x] site3.z[x] <- z.dist.site3 + site3.z[x] site4.z[x] <- z.dist.site4 + site4.z[x] site5.z[x] <- z.dist.site5 + site5.z[x] site6.z[x] <- z.dist.site6 + site6.z[x] } site1.x.mean <- mean(site1.x) site2.x.mean <- mean(site2.x) site3.x.mean <- mean(site3.x) site4.x.mean <- mean(site4.x) site5.x.mean <- mean(site5.x) site6.x.mean <- mean(site6.x) site1.y.mean <- mean(site1.y) site2.y.mean <- mean(site2.y) site3.y.mean <- mean(site3.y) site4.y.mean <- mean(site4.y) site5.y.mean <- mean(site5.y) site6.y.mean <- mean(site6.y) site1.z.mean <- mean(site1.z) site2.z.mean <- mean(site2.z) site3.z.mean <- mean(site3.z) site4.z.mean <- mean(site4.z) site5.z.mean <- mean(site5.z) site6.z.mean <- mean(site6.z) site1.x.CI <- ((site1.x.mean - quantile(site1.x,lower)) + (quantile(site1.x,upper) - site1.x.mean))/2 site2.x.CI <- ((site2.x.mean - quantile(site2.x,lower)) + (quantile(site2.x,upper) - site2.x.mean))/2 site3.x.CI <- ((site3.x.mean - quantile(site3.x,lower)) + (quantile(site3.x,upper) - site3.x.mean))/2 site4.x.CI <- ((site4.x.mean - quantile(site4.x,lower)) + (quantile(site4.x,upper) - site4.x.mean))/2 site5.x.CI <- ((site5.x.mean - quantile(site5.x,lower)) + (quantile(site5.x,upper) - site5.x.mean))/2 site6.x.CI <- ((site6.x.mean - quantile(site6.x,lower)) + (quantile(site6.x,upper) - site6.x.mean))/2 site1.y.CI <- ((site1.y.mean - quantile(site1.y,lower)) + (quantile(site1.y,upper) - site1.y.mean))/2 site2.y.CI <- ((site2.y.mean - quantile(site2.y,lower)) + (quantile(site2.y,upper) - site2.y.mean))/2 site3.y.CI <- ((site3.y.mean - quantile(site3.y,lower)) + (quantile(site3.y,upper) - site3.y.mean))/2 site4.y.CI <- ((site4.y.mean - quantile(site4.y,lower)) + (quantile(site4.y,upper) - site4.y.mean))/2 site5.y.CI <- ((site5.y.mean - quantile(site5.y,lower)) + (quantile(site5.y,upper) - site5.y.mean))/2 site6.y.CI <- ((site6.y.mean - quantile(site6.y,lower)) + (quantile(site6.y,upper) - site6.y.mean))/2 site1.z.CI <- ((site1.z.mean - quantile(site1.z,lower)) + (quantile(site1.z,upper) - site1.z.mean))/2 site2.z.CI <- ((site2.z.mean - quantile(site2.z,lower)) + (quantile(site2.z,upper) - site2.z.mean))/2 site3.z.CI <- ((site3.z.mean - quantile(site3.z,lower)) + (quantile(site3.z,upper) - site3.z.mean))/2 site4.z.CI <- ((site4.z.mean - quantile(site4.z,lower)) + (quantile(site4.z,upper) - site4.z.mean))/2 site5.z.CI <- ((site5.z.mean - quantile(site5.z,lower)) + (quantile(site5.z,upper) - site5.z.mean))/2 site6.z.CI <- ((site6.z.mean - quantile(site6.z,lower)) + (quantile(site6.z,upper) - site6.z.mean))/2 site1.CI.radius <- (site1.x.CI + site1.y.CI + site1.z.CI) / 3 site2.CI.radius <- (site2.x.CI + site2.y.CI + site2.z.CI) / 3 site3.CI.radius <- (site3.x.CI + site3.y.CI + site3.z.CI) / 3 site4.CI.radius <- (site4.x.CI + site4.y.CI + site4.z.CI) / 3 site5.CI.radius <- (site5.x.CI + site5.y.CI + site5.z.CI) / 3 site6.CI.radius <- (site6.x.CI + site6.y.CI + site6.z.CI) / 3 sites.plot <- array(NA, dim=c(6,4)) sites.plot[1,] <- c(site1.x.mean, site1.y.mean, site1.z.mean, site1.CI.radius) sites.plot[2,] <- c(site2.x.mean, site2.y.mean, site2.z.mean, site2.CI.radius) sites.plot[3,] <- c(site3.x.mean, site3.y.mean, site3.z.mean, site3.CI.radius) sites.plot[4,] <- c(site4.x.mean, site4.y.mean, site4.z.mean, site4.CI.radius) sites.plot[5,] <- c(site5.x.mean, site5.y.mean, site5.z.mean, site5.CI.radius) sites.plot[6,] <- c(site6.x.mean, site6.y.mean, site6.z.mean, site6.CI.radius) #print(sites.plot) #rgl.spheres(sites.plot[,1],sites.plot[,2],sites.plot[,3],radius = sites.plot[,4], color=c(1,3,10,6, 4, 7)) # sites.plot.2<- array(NA, dim=c(test[1],4)) #print(sites.plot.2) for(x in 1:test[1]){ sites.plot.2[x,]<- c(sites.plot[x,]) } # sites.plot.2[1,] <- c(sites.plot[1,]) # sites.plot.2[2,] <- c(sites.plot[2,]) # sites.plot.2[3,] <- c(sites.plot[3,]) # sites.plot.2[4,] <- c(sites.plot[4,]) # sites.plot.2[5,] <- c(sites.plot[5,]) # sites.plot.2[6,] <- c(sites.plot[6,]) # rgl.spheres(sites.plot.2[1:test[1],1],sites.plot.2[1:test[1],2],sites.plot.2[1:test[1],3],radius = sites.plot.2[1:test[1],4], color=c(1:test[1])) # cat('\n Colours for each category: \n 1 = black, 2 = red, 3 = green, 4 = dark blue, 5= light blue , 6 = pink') #plot3d(sites.plot.2[1:4,1],sites.plot.2[1:4,2],sites.plot.2[1:4,3],xlab="PC1", ylab="PC2", zlab="PC3") # optional plot to see positions of points relative to PC axes }