User:Timothee Flutre/Notebook/Postdoc/2011/11/09: Difference between revisions

From OpenWetWare
Jump to navigationJump to 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 14:38, 9 November 2011

Project name <html><img src="/images/9/94/Report.png" border="0" /></html> Main project page
<html><img src="/images/c/c3/Resultset_previous.png" border="0" /></html>Previous entry<html>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</html>Next entry<html><img src="/images/5/5c/Resultset_next.png" border="0" /></html>

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.