[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,
Edwin
More information about the R-help
mailing list