# Bootstrap PCA with varimax rotation

I have microfossil data from across the Cretaceous-Tertiary boundary, 20 species (=variables) and 27 samples (=observations). I have run a PCA with varimax rotation on these data using the rgr package. I now want to determine the significance of the PC loadings using bootstrap BCa confidence intervals from package boot, but I can't get it to work. I have found using Krzanowski cross-validation that 5 PCs appear to be significant (NRETAIN in the script below is thus equal to 5). The script I have been attempting looks like this (the data matrix is called “x”):

BS.vmax <- function(d, f)
{    n <- nrow(d)
unrot <-gx.mva(d)
unrot$eigenvectors vmax <- gx.rotate(unrot, nrot=NRETAIN) vload <- vmax$rload[,1:NRETAIN]
}

BS.vmax.boot <- boot(x, BS.vmax, R = 99)
boot.ci(BS.vmax.boot, type = "bca")


This script returns a BS.vmax.boot value that looks like this:

ORDINARY NONPARAMETRIC BOOTSTRAP
Call:
boot(data = x, statistic = BS.vmax, R = 99)
Bootstrap Statistics :
original  bias    std. error
t1*   -0.745596283       0           0
t2*   -0.902044503       0           0
...
lines removed here
...
t99*  -0.144587913       0           0
t100*  0.076592734       0           0


which doesn't make any sense (because all biases and SEs are zero)! I will later on increase the number of bootstrap replicates to 2000; this is just for testing.