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

From OpenWetWare
Jump to: navigation, search
(About R: add link to procedure for publication-quality plots)
(About R: add useful links on R's bad sides)
Line 17: Line 17:
** [http://www.r-bloggers.com/ aggregator] of R blogs
** [http://www.r-bloggers.com/ aggregator] of R blogs
** compatible with [http://ess.r-project.org/ ESS] (emacs mode), besides other IDEs such as [http://www.rstudio.com/ Rstudio]
** compatible with [http://ess.r-project.org/ ESS] (emacs mode), besides other IDEs such as [http://www.rstudio.com/ Rstudio]
** but R language specifications are unconventional ([https://github.com/tdsmith/aRrgh aRgh], John Cook's [http://www.johndcook.com/R_language_for_programmers.html doc], [http://www.burns-stat.com/pages/Tutor/R_inferno.pdf R Inferno])
* '''Tips''':
* '''Tips''':

Revision as of 16:40, 17 November 2013

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>

About R

  • Motivation: when analyzing data for any research project, it's essential to be able to quickly clean the raw data, transform them, plot intermediary results, calculate summary statistics, try various more-or-less sophisticated models, etc. This must be easily doable with small as well as large data sets, interactively or not. Several tools exist to fill exactly this need, and R is only one of them, but I especially recommend it because it is build by statisticians (this means that the implemented models are numerous and state-of-the-art). Moreover, it's open-source (and even free software), platform-independent, full of packages, with well-documented resources, etc, so give it a try!
  • Documentation:
  • Tips:
    • explicit policy for packages development by Jeff Leek in his lab
    • procedure for publication-quality plots

  • customize the built-in heatmap in R (inspired from this):
S <- 3  # nb of subgroups
V <- 7  # nb of observations
z <- matrix(c(0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0), nrow=V, ncol=S, byrow=TRUE)

myheatmap <- function(z, out.file="") {
  def.par <- par(no.readonly=TRUE)
  par(mar=c(4,5,3,2), font=2, font.axis=2, font.lab=2, cex=1.5, lwd=2)
  if (out.file != "")
  layout(mat=cbind(1, 2), width=c(7,1))  # plot +  legend
  mycol <- rev(heat.colors(4))
  image(x=1:NCOL(z), y=1:NROW(z), z=t(z),
        xlim=0.5+c(0,NCOL(z)), ylim=0.5+c(0,NROW(z)),
        xlab="", ylab="Observations sorted by cluster", main="Custom heatmap",
        axes=FALSE, col=mycol)
  axis(1, 1:NCOL(z), labels=paste("subgroup", 1:NCOL(z)), tick=0)
  legend("center", legend=sprintf("%.2f", seq(from=min(z), to=max(z), length.out=5)[-1]),
         fill=mycol, border=mycol, bty="n")
  if (out.file != "")