Whilst the constrained proportion was 0 in the example below I am getting the error in cases where this is not so.  See new output pasted below


[1] "ORDISTEP RDA1 BOTH WAYS"
[1] "________________________________________________________________________________________________"
[1] "SFW ALL Adult"
[1] mds3dSFW_EO_100_CS25  mds3dSFW_EO_5000_CS25 mds3dSFW_TH_10_CS25   mds3dSFW_TH_2_CS25   
Call: rda(formula = mygenind@tab ~ mds3dTRE_25_100_CS25 + mds3dTRE_25_10_CS25 +
mds3dTRE_25_2_CS25 + mds3dTRE_25_5_CS25 + mydata$TreeCov + mydata$Hab_Config +
mydata$Site_No + mydata$Landscape + mds3dCS_NULL + mydata$LAT.x + mydata$LONG.x, na.action
= "na.omit")

              Inertia Proportion Rank
Total          4.5099     1.0000     
Constrained    1.2635     0.2802   29
Unconstrained  3.2464     0.7198  142
Inertia is variance 
Some constraints were aliased because they were collinear (redundant)

Eigenvalues for constrained axes:
    RDA1     RDA2     RDA3     RDA4     RDA5     RDA6     RDA7     RDA8     RDA9    RDA10    RDA11 
0.173325 0.126065 0.093396 0.086910 0.072219 0.063064 0.062034 0.058022 0.050743 0.045038 0.043567 
   RDA12    RDA13    RDA14    RDA15    RDA16    RDA17    RDA18    RDA19    RDA20    RDA21    RDA22 
0.039200 0.035363 0.033358 0.029372 0.028224 0.025715 0.024484 0.024007 0.021999 0.020480 0.018853 
   RDA23    RDA24    RDA25    RDA26    RDA27    RDA28    RDA29 
0.017277 0.015510 0.015091 0.012845 0.011089 0.009377 0.006886 

Eigenvalues for unconstrained axes:
   PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8 
0.2037 0.1710 0.1670 0.1450 0.1343 0.1155 0.1120 0.1015 
(Showed only 8 of all 142 unconstrained eigenvalues)

Error in if (aod[1, 5] <= Pin) { : missing value where TRUE/FALSE needed
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> 
> 
> 
> traceback()
6: ordistep(myrda0, scope = formula(myrda1), direction = "both", 
       Pin = 0.05, Pout = 0.1) at #55
5: eval(expr, envir, enclos) at #55
4: eval(expr, pf) at #55
3: withVisible(eval(expr, pf)) at #55
2: evalVis(expr) at #55
1: capture.output(ordistep(myrda0, scope = formula(myrda1), direction = "both", 
       Pin = 0.05, Pout = 0.1)) at #55
Cheers

Nevil Amos

> 
> Nevil Amos <nevil.amos <at> monash.edu> writes:
> 
>> 
>> I am getting the following erro rmessage in ordistep.  I have a number of
>> similarly structured datasets using ordistep in a loop, and the message
>> only occurs for some of the datasets.
>> 
>> I cannot include a reproducible sample  - the specific datasets where this
>> is occur ing are fairly large and there are several pcnm's in the rhs of
>> the formula.
>> 
>> Error in if (aod[1, 5] <= Pin) { : missing value where TRUE/FALSE needed
>> 
> Nevil,
> 
> It seems to me that the source of the problem appears in this table:
> 
>>             Inertia Proportion Rank
>> Total          1.8110     1.0000
>> Conditional    0.8681     0.4793   32
>> Constrained    0.0000     0.0000    0
>> Unconstrained  0.9429     0.5207   29
>> Inertia is variance
>> Some constraints were aliased because they were collinear (redundant)
>> 
> 
> The key point is that "Constrained" component is completely alaised (Inertia 0,
> Rank 0) and therefore it cannot be analysed in permutation tests. You get the
> same error message with this model:
> 
> mod <- rda(dune ~  Moisture + Condition(Moisture), dune.env)
> 
> and for the same reason. In your case, PCNM's seem to explain everything and
> there is nothing left for other variables, and therefore you cannot analyse them.
> 
> Cheers, Jari Oksanen
> 
> I can see how to fix this in vegan. All I can do is to handle these cases
> smoothly and with comprehensible error messages, though. They cannot be handled
> with permutation tests since there is nothing to do if "Constrained" component
> is zeroed.
> 
> Cheers, Jari Oksanen

	[[alternative HTML version deleted]]

