User:Timothee Flutre/Notebook/Postdoc/2011/11/09

From OpenWetWare

(Difference between revisions)
Jump to: navigation, search
(Entry title: replace rownames with mapping when different order)
m (Entry title: mention R "replace")
Line 15: Line 15:
  new.rownames <- unlist(lapply(rownames(mat), function(i){links$id2[which(links$id1 == i)]}))
  new.rownames <- unlist(lapply(rownames(mat), function(i){links$id2[which(links$id1 == i)]}))
  rownames(mat) <- new.rownames
  rownames(mat) <- new.rownames
 +
 +
Or it's maybe easier with the built-in [http://stat.ethz.ch/R-manual/R-patched/library/base/html/replace.html replace] function.
<!-- ##### DO NOT edit below this line unless you know what you are doing. ##### -->
<!-- ##### DO NOT edit below this line unless you know what you are doing. ##### -->

Revision as of 17:38, 9 November 2011

Project name Main project page
Previous entry      Next entry

Entry title

  • in R, replace the row names of a matrix by their new names when the order is different (but assuming one-to-one mapping):
links <- data.frame(id1=c("a","b","c"), id2=c("1","2","3"), stringsAsFactors=FALSE)
mat <- matrix(runif(3*10), nrow=3)
rownames(mat) <- c("b","c","a")
new.rownames <- unlist(lapply(rownames(mat), function(i){links$id2[which(links$id1 == i)]}))
rownames(mat) <- new.rownames

Or it's maybe easier with the built-in replace function.


Personal tools