User Tools

Site Tools


documents:111012rtricks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
documents:111012rtricks [2012/06/13 12:38] kotadocuments:111012rtricks [2012/07/11 15:10] – external edit 127.0.0.1
Line 1: Line 1:
-====== R Tricks ====== 
- 
-===== removing trailing zeros from a vector ===== 
- 
-When you import data from the out put of other software, you might have trailing 0s at the end of each column: 
-<code> 
-> d0 
- [1] 69.444 70.889 86.667 95.667 83.444 78.333 67.889 
- [8] 56.000 49.222 40.333 37.889 31.889 30.333 26.667 
-[15] 22.444 23.111 20.889 22.000 20.111 19.778 20.778 
-[22] 19.667 17.333 19.333 19.000 16.333 14.444 13.889 
-[29] 18.000 21.778 23.556 23.889 28.778 40.000 48.667 
-[36] 55.889 66.667 78.889 72.222 84.778 68.778 69.444 
-[43]  0.000  0.000  0.000  0.000  0.000  0.000  0.000 
-[50]  0.000  0.000  0.000  0.000  0.000  0.000  0.000 
-[57]  0.000  0.000  0.000  0.000  0.000  0.000  0.000 
-[64]  0.000  0.000  0.000  0.000 
-</code> 
-To remove them, there could be many ways, but here is my one liner.  
-<code R> 
-d0c <- d0[rev(cumsum(rev(d0)))>0] 
-</code> 
-Then the output is 
-<code> 
-> d0c 
- [1] 69.444 70.889 86.667 95.667 83.444 78.333 67.889 
- [8] 56.000 49.222 40.333 37.889 31.889 30.333 26.667 
-[15] 22.444 23.111 20.889 22.000 20.111 19.778 20.778 
-[22] 19.667 17.333 19.333 19.000 16.333 14.444 13.889 
-[29] 18.000 21.778 23.556 23.889 28.778 40.000 48.667 
-[36] 55.889 66.667 78.889 72.222 84.778 68.778 69.444 
-</code> 
- 
-===== Plotting a matrix data as a color-coded image ===== 
- 
-<sxh> 
-#a 2Dplot, color coded.  
-x <- c(1:20) 
-y <- c(1:10) 
-for(j in y){ 
-  for(i in x){ 
-    val <- i+j 
-    if((i == 0) & (j == 0)) z <- val     
-    elsez <- append(z, val) 
-  } 
-} 
- 
-z <- matrix(z, nrow=20, ncol=10) 
-mat <- list(x, y, z) 
-image(x, y, z) 
-</sxh> 
- 
-[{{:documents:rtips:imageplot.png| Example plotting of a matrix using base graphics function image()}}] 
- 
-... a bit faster way calculation wise uses indexing.  
-<sxh> 
-width <- 10 
-height <- 20 
-x <- c(1:width) 
-y <- c(1:height) 
-xindex <-rep(x, length = width*height) 
-yindex <- yindexing(x, y) 
- 
-z <- xindex + yindex 
- 
-z <- matrix(z, nrow=width, ncol=height) 
-mat <- list(x, y, z) 
-image(x, y, z) 
- 
-yindexing <- function (x, y) { 
-  for(i in y){ 
-    cr <- rep(i, length=length(x)) 
-    if (i==1) all <- cr 
-    else all <- append(all, cr) 
-  } 
-  return (all) 
-} 
-</sxh> 
- 
-===== Inserting math formula & symbols in label or title ===== 
- 
-The easiest way is to use function //expression()//. For example, 
-<code> 
-plot(back$V2, type='l', xlab=expression(slice %.% time), ylab='intensity', xaxt="n", yaxt="n") 
-</code> 
-Inserts vertically centered dot in the x label between "slice" and "time". You could check other available expressions by 
-<code> 
-?plotmath 
-</code>  
- 
-More recent, but under development is using [[http://cran.r-project.org/web/packages/tikzDevice/|tikzDevice]]. 
  
documents/111012rtricks.txt · Last modified: 2020/11/26 07:08 by kota

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki