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

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

Owwnotebook icon.png 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.