[MORPHMET] physignal in geomorph
Dear friends and colleagues I am trying to run physignal in geomorph (R), but I am running into a problem I do not understand. Here is the code I am using and the error message: > physignal(ursid_phyl, Regr_res_av, iter=99) Error in match.names(clabs, names(xi)) : names do not match previous names However: > name.check(ursid_phyl,Regr_res_av) [1] "OK" But: > match(ursid_phyl,Regr_res_av) [1] NA NA NA NA > match(Regr_res_av,ursid_phyl) [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA [24] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA This suggested to me that physignal might need the columns to carry the same names rather than the rows (as my phylogeny is list of 4 and I have 15 landmarks=45 variables), but when I transposed my data, I get a different error message: > trans_regr_res_av <-t(Regr_res_av) > physignal(ursid_phyl, trans_regr_res_av, iter=99) Error in physignal(ursid_phyl, trans_regr_res_av, iter = 99) : Number of taxa in data matrix and tree are not not equal. I do not know what I could try next to calculate physignal. Any help would be appreciated. This is the phylogeny that I am using: (Ame:21.8,(Tor:14.5,((Uam:5.7,(Uth:3.3,(Usp:1.2,(Uma:1.0,Uar:1.0):0.2):2.1):2.4):0.0,(Hma:1.0,Mur:1.0):4.7):8.8):7.3); Thanks in advance. Best wishes, Anneke van Heteren -- MORPHMET may be accessed via its webpage at http://www.morphometrics.org To unsubscribe from this group and stop receiving emails from it, send an email to morphmet+unsubscr...@morphometrics.org.
Re: [MORPHMET] physignal in geomorph
Anneke, You are using match() incorrectly. See below: > library(geomorph) Loading required package: rgl > data(plethspecies) > Y.gpa<-gpagen(plethspecies$land) > physignal(plethspecies$phy,Y.gpa$coords,method="Kmult",iter=99) $phy.signal [,1] [1,] 0.9572538 $pvalue [,1] [1,] 0.03 > match(plethspecies$phy, Y.gpa$coords) # doesn't work [1] NA NA NA NA > match(plethspecies$phy$tip.label, dimnames(Y.gpa$coords)[[3]]) # works [1] 7 1 8 3 9 5 4 2 6 By specifying $tip.label and dimnames() you will be able to see the problem with your dataset. It's likely to be a trailing space or _. Emma ~~~ Emma Sherratt, PhD. Lecturer in Zoology, Zoology Division, School of Environmental and Rural Science, Room L112 Bldg C02, University of New England, Armidale, NSW, Australia, 2351 Tel: +61 2 6773 5041 email: emma.sherr...@une.edu.au Twitter: @DrEmSherratt Caecilians are legless amphibians... * __ (\ .-. .-. /_") \\_//^\\_//^\\_// `"` `"` `"`* learn more about them here: www.emmasherratt.com/caecilians On 11 June 2015 at 18:29, Anneke van Heteren wrote: > Dear friends and colleagues > > > > I am trying to run physignal in geomorph (R), but I am running into a > problem I do not understand. Here is the code I am using and the error > message: > > > physignal(ursid_phyl, Regr_res_av, iter=99) > > Error in match.names(clabs, names(xi)) : > > names do not match previous names > > > > However: > > > name.check(ursid_phyl,Regr_res_av) > > [1] "OK" > > > > But: > > > match(ursid_phyl,Regr_res_av) > > [1] NA NA NA NA > > > match(Regr_res_av,ursid_phyl) > > [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > > [24] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > > > > This suggested to me that physignal might need the columns to carry the > same names rather than the rows (as my phylogeny is list of 4 and I have 15 > landmarks=45 variables), but when I transposed my data, I get a different > error message: > > > trans_regr_res_av <-t(Regr_res_av) > > > physignal(ursid_phyl, trans_regr_res_av, iter=99) > > Error in physignal(ursid_phyl, trans_regr_res_av, iter = 99) : > > Number of taxa in data matrix and tree are not not equal. > > > > I do not know what I could try next to calculate physignal. Any help would > be appreciated. This is the phylogeny that I am using: > > > > (Ame:21.8,(Tor:14.5,((Uam:5.7,(Uth:3.3,(Usp:1.2,(Uma:1.0,Uar:1.0):0.2):2.1):2.4):0.0,(Hma:1.0,Mur:1.0):4.7):8.8):7.3); > > > Thanks in advance. > > > > Best wishes, > > > > Anneke van Heteren > > > > > -- > MORPHMET may be accessed via its webpage at http://www.morphometrics.org > > To unsubscribe from this group and stop receiving emails from it, send an > email to morphmet+unsubscr...@morphometrics.org. > -- MORPHMET may be accessed via its webpage at http://www.morphometrics.org To unsubscribe from this group and stop receiving emails from it, send an email to morphmet+unsubscr...@morphometrics.org.
Re: [MORPHMET] physignal in geomorph
However Anneke, the error that you first get is not our catch of the names not matching, but is instead coming from somewhere within, but where I cannot immediately tell. Perhaps send me the traceback. Also note that name.check() only works with data in a 2d matrix and not a 3d array. Emma ~~~ Emma Sherratt, PhD. Lecturer in Zoology, Zoology Division, School of Environmental and Rural Science, Room L112 Bldg C02, University of New England, Armidale, NSW, Australia, 2351 Tel: +61 2 6773 5041 email: emma.sherr...@une.edu.au Twitter: @DrEmSherratt Caecilians are legless amphibians... * __ (\ .-. .-. /_") \\_//^\\_//^\\_// `"` `"` `"`* learn more about them here: www.emmasherratt.com/caecilians On 11 June 2015 at 22:39, Emma Sherratt wrote: > Anneke, > > You are using match() incorrectly. See below: > > > library(geomorph) > Loading required package: rgl > > data(plethspecies) > > Y.gpa<-gpagen(plethspecies$land) > > physignal(plethspecies$phy,Y.gpa$coords,method="Kmult",iter=99) > $phy.signal > [,1] > [1,] 0.9572538 > > $pvalue > [,1] > [1,] 0.03 > > > match(plethspecies$phy, Y.gpa$coords) # doesn't work > [1] NA NA NA NA > > match(plethspecies$phy$tip.label, dimnames(Y.gpa$coords)[[3]]) # works > [1] 7 1 8 3 9 5 4 2 6 > > By specifying $tip.label and dimnames() you will be able to see the > problem with your dataset. It's likely to be a trailing space or _. > > Emma > > ~~~ > > Emma Sherratt, PhD. > > Lecturer in Zoology, > Zoology Division, School of Environmental and Rural Science, > Room L112 Bldg C02, > University of New England, > Armidale, NSW, Australia, 2351 > Tel: +61 2 6773 5041 > email: emma.sherr...@une.edu.au > Twitter: @DrEmSherratt > > Caecilians are legless amphibians... > > * __ > (\ .-. .-. /_") > \\_//^\\_//^\\_// > `"` `"` `"`* > > learn more about them here: www.emmasherratt.com/caecilians > > > > > On 11 June 2015 at 18:29, Anneke van Heteren > wrote: > >> Dear friends and colleagues >> >> >> >> I am trying to run physignal in geomorph (R), but I am running into a >> problem I do not understand. Here is the code I am using and the error >> message: >> >> > physignal(ursid_phyl, Regr_res_av, iter=99) >> >> Error in match.names(clabs, names(xi)) : >> >> names do not match previous names >> >> >> >> However: >> >> > name.check(ursid_phyl,Regr_res_av) >> >> [1] "OK" >> >> >> >> But: >> >> > match(ursid_phyl,Regr_res_av) >> >> [1] NA NA NA NA >> >> > match(Regr_res_av,ursid_phyl) >> >> [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA >> >> [24] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA >> >> >> >> This suggested to me that physignal might need the columns to carry the >> same names rather than the rows (as my phylogeny is list of 4 and I have 15 >> landmarks=45 variables), but when I transposed my data, I get a different >> error message: >> >> > trans_regr_res_av <-t(Regr_res_av) >> >> > physignal(ursid_phyl, trans_regr_res_av, iter=99) >> >> Error in physignal(ursid_phyl, trans_regr_res_av, iter = 99) : >> >> Number of taxa in data matrix and tree are not not equal. >> >> >> >> I do not know what I could try next to calculate physignal. Any help >> would be appreciated. This is the phylogeny that I am using: >> >> >> >> (Ame:21.8,(Tor:14.5,((Uam:5.7,(Uth:3.3,(Usp:1.2,(Uma:1.0,Uar:1.0):0.2):2.1):2.4):0.0,(Hma:1.0,Mur:1.0):4.7):8.8):7.3); >> >> >> Thanks in advance. >> >> >> >> Best wishes, >> >> >> >> Anneke van Heteren >> >> >> >> >> -- >> MORPHMET may be accessed via its webpage at http://www.morphometrics.org >> >> To unsubscribe from this group and stop receiving emails from it, send an >> email to morphmet+unsubscr...@morphometrics.org. >> > > -- MORPHMET may be accessed via its webpage at http://www.morphometrics.org To unsubscribe from this group and stop receiving emails from it, send an email to morphmet+unsubscr...@morphometrics.org.