[R] I cannot get species scores to plot with site scores in MDS when I use a distance matrix as input. Problems with NA's?

Edwin Lebrija Trejos elebrija at hotmail.com
Thu Nov 24 13:16:07 CET 2011

Hi, First I should note I am relatively new to R so I would appreciate answers that take this into account.
I am trying to perform an MDS ordination using the function “metaMDS” of the “vegan” package. I want to ordinate species according to a set of functional traits. “Species” here refers to “sites” in traditional vegetation analyses while “traits” here correspond to “species” in such analyses.  
My data looks like this:
         Trait1   Trait2 Trait3  Trait4  Trait5  Trait…  
Species1 228.44   16.56   1.66   13.22     1     short 
Species2 150.55   28.07   0.41   0.60      1     mid
Species3     NA   25.89     NA   0.55      0     large
Species4 147.70   17.65   0.42   1.12     NA     large
Species… 132.68      NA   1.28   2.75      0     short

Because the traits have different variable types, different measurement scales, and also missing values for some species, I have calculated the matrix of species distances using the Gower coefficient of similarity available in Package “FD” (which allows missing values). 
My problem comes when I create a bi-plot of species and traits. As I have used a distance matrix in function “metaMDS” there are no species scores available. This is given as a warning in R: 
"> NMDSgowdis<- metaMDS(SpeciesGowdis)
> plot(NMDSgowdis, type = "t")
Warning message:In ordiplot(x, choices = choices, type = type, display = display, :Species scores not available” 
I have read from internet resources that in principle I could obtain the trait ("species") scores to plot them in the ordination but my attempts have been unsuccessful. I have tried using the function “wascores” in package vegan and “add.spec.scores” in package BiodiversityR. For this purpuse I have created a new species x traits table where factor traits were coded into dummy variables and all integer variables (including binary) were coerced to numeric variables. Here are the codes used and the error messages I have got: 
“> NMDSgowdis<- metaMDS(SpeciesGowdis)
> NMDSpoints<-postMDS(NMDSgowdis$points,SpeciesGowdis)
> NMDSwasc<-wascores(NMDSpoints,TraitsNMDSdummies)
Error in if (any(w < 0) || sum(w) == 0) stop("weights must be non-negative and not all zero") : missing value where TRUE/FALSE needed” 
I imagine the problem is with the NA’s in the data. 
Alternatively, I have used the “add.spec.scores” function, method=”cor.scores”, found in package BiodiversityR. This seemed to work, as I got no error message, but the species scores were not returned. Here the R code and results:
“> A<-add.spec.scores(ordi=NMDSgowdis,comm=TraitsNMDSdummies,method="cor.scores",multi=1, Rscale=F,scaling="1")
> plot(A)
Warning message:In ordiplot(x, choices = choices, type = type, display = display, :Species scores not available“
Can anyone guide me to get the trait (“species”) scores to plot together with my species (“site”) scores?
Thanks in advance,


More information about the R-help mailing list