[Phylobase-commits] r136 - pkg/R
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Tue Mar 4 17:44:38 CET 2008
Author: jombart
Date: 2008-03-04 17:44:38 +0100 (Tue, 04 Mar 2008)
New Revision: 136
Modified:
pkg/R/phylo4.R
Log:
Fixed the order of rows in printing of phylo4d.
Modified: pkg/R/phylo4.R
===================================================================
--- pkg/R/phylo4.R 2008-03-03 16:03:26 UTC (rev 135)
+++ pkg/R/phylo4.R 2008-03-04 16:44:38 UTC (rev 136)
@@ -331,15 +331,16 @@
as(from, "phylo4") -> tree # get tree
as(tree, "data.frame") -> t_df # convert to data.frame
tdata(from, "allnode") -> dat # get data
- t_df$order <- rownames(t_df) # save roworder of tree
+ old.ord <- t_df$taxon.name # save roworder of tree
- merge(t_df, dat, by.x="taxon.name", by.y="row.names", all.x=TRUE, sort=FALSE) -> tdat
- # merged tree, data, but mixed up
+ ## merge data.frames of tree and data
+ tdat <- merge(t_df, dat, by.x="taxon.name", by.y="row.names", all.x=TRUE, all.y=FALSE, sort=FALSE)
- order(tdat$order) -> o # ordering to get back original roworder
- tdat[o,] -> tdat # original order of tree
- rownames(tdat) <- tdat$order # fix scrambled row numbers
- return(tdat[,!colnames(tdat) %in% "order"]) # drop "order"
+ ## restore the correct order (i.e. the one of the tree data.frame)
+ idx <- match(old.ord,tdat$taxon.name)
+ res <- tdat[idx,]
+
+ return(res) # drop "order"
})
setGeneric("print")
More information about the Phylobase-commits
mailing list