Holcombe:ProgrammingInR
From OpenWetWare
Current revision (20:00, 13 September 2012) (view source) (→doing ANOVAs etc) 

(48 intermediate revisions not shown.)  
Line 1:  Line 1:  
{{Template:Holcombe}}  {{Template:Holcombe}}  
  R is  +  R is an interactive programming language for statistics. The syntax is very idiosyncratic, and not really in a good way. Try [http://www.johndcook.com/R_language_for_programmers.html R for programmers] for a description. 
+  However it may have menudriven versions maybe available  
[http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/ R commander] we haven't tried that and another one is pmg GTK [http://www.ggobi.org/rgtk2 maybe here]  [http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/ R commander] we haven't tried that and another one is pmg GTK [http://www.ggobi.org/rgtk2 maybe here]  
  [[R_Statistics]] introduces you to R  +  In the lab we have the book ''Using R for Introductory Statistics''. [[R_Statistics]] introduces you to R 
+  
+  Dani has posted some example code and graphs on his [http://www.dlinares.org/Site/R_code.html personal website].  
[http://www.rpad.org/Rpad/Rrefcard.pdf R reference cheatsheet], also  [http://www.rpad.org/Rpad/Rrefcard.pdf R reference cheatsheet], also  
a file here [[Media:Matlabpythonxref.pdf]] that gives equivalent code for doing array operations in MATLAB, Python, and R  a file here [[Media:Matlabpythonxref.pdf]] that gives equivalent code for doing array operations in MATLAB, Python, and R  
+  [http://www.statmethods.net/advgraphs/axes.html plot parameters]  
  +  There is a wiki with some good tips [http://wiki.rproject.org/rwiki/doku.php?id=start here]. Also  
+  [http://rwiki.sciviews.org/doku.php?id=tips:tips#data Data frame tips], [http://alittleknowledge.wordpress.com/2009/09/11/rforpedestrians/ list of R websites]  
  +  Functions in R can only return one parameter.  
  Examining your data  +  
+  ===dataframe tips===  
+  Examining your data frame or object, let's say it's called ''datos''  
+  typeof(datos) #returns "list!"  
+  str(datos) #tells you it's a dataframe, number of observations, columns, etc  
head(datos)  head(datos)  
str(datos)  str(datos)  
+  summary(datos) #good for ggplot objects also  
+  
+  df$varWithExtraLevels = factor(df$varWithExtraLevels)  
+  
+  length(df) #number of columns of dataframe  
+  
+  names(df) #names of columns of dataframe  
+  
+  library(Hmisc);  
+  describe(df)  
+  
+  #Calling typeof() on a dataframe returns "list"  
+  
+  rm(objectToBeDeleted)  
+  rm(list = ls()) #Delete nearly everything in memory  
+  
+  expand.grid() to create dataframe with every combination of some factors  
+  
+  Check your counterbalancing in your results file. Make a contingency table,  
+  table(dataRaw$speed,dataRaw$relPhaseOuterRing)  
+  
+  Replace certain value with another  
+  thr$thresh[ thr$task=='ident' ] = NA  
+  
+  ==Creating Graphs (usu. ggplot2)==  
+  
+  how I [[Holcombe:fit psychometric functions]] and bootstrap  
+  
+  See http://openwetware.org/wiki/Holcombe:Plotting  
+  
+  ==Debugging in R==  
+  How to examine and try things with a questionable variable within a function?  
+  
+  ee << resultsMeans #make global, violating all principles of good coding #DEBUG  
+  STOP  
+  
+  After an error, calling traceback() gives you the stack  
+  
+  ==doing ANOVAs etc==  
+  [http://ww2.coastal.edu/kingw/statistics/Rtutorials/formulae.html Understanding model formulae]  
+  
+  [http://ww2.coastal.edu/kingw/statistics/Rtutorials/repeated.html ANOVA with repeated measures] walkthrough  
  
  
[http://www.personalityproject.org/r/r.anova.html some aov (ANOVA) explanation]  [http://www.personalityproject.org/r/r.anova.html some aov (ANOVA) explanation]  
[http://books.google.com.au/books?id=yULf2kZSfeMC&pg=PA303&lpg=PA303&dq=r+linear+model+lm+continuous+and+discrete+factor&source=bl&ots=t82xDTuDaL&sig=EVVrHZ08lC80MGvJUQDNLg948Mc&hl=en&ei=_CO3SdOsG5mktQPZxYjsAQ&sa=X&oi=book_result&resnum=1&ct=result#PPA303,M1 R will assume factor is regressor if numeric]  [http://books.google.com.au/books?id=yULf2kZSfeMC&pg=PA303&lpg=PA303&dq=r+linear+model+lm+continuous+and+discrete+factor&source=bl&ots=t82xDTuDaL&sig=EVVrHZ08lC80MGvJUQDNLg948Mc&hl=en&ei=_CO3SdOsG5mktQPZxYjsAQ&sa=X&oi=book_result&resnum=1&ct=result#PPA303,M1 R will assume factor is regressor if numeric]  
+  
+  I think I had [http://tolstoy.newcastle.edu.au/R/help/04/08/2136.html too many error terms]  
+  [http://books.google.com.au/books?id=ptbcCBSWvvQC&pg=PA359&lpg=PA359&dq=ANOVA+withinsubjects++pooled+error+term&source=bl&ots=73eFDsaw8l&sig=ReTGWRjNFGnYQ4DFD6qAE9qJgQ&hl=en&ei=cKu4Sd7CPIr2sAPSw4Q8&sa=X&oi=book_result&resnum=8&ct=result reducing error terms]  
+  
+  [http://blog.gribblelab.org/2009/03/09/repeatedmeasuresanovausingr/ Anovas with repeated measures] can be complicated in R.  
+  
+  We have some R books in the lab  
==Dealing with circular data==  ==Dealing with circular data==  
Line 26:  Line 82:  
see Swindale, N. V. (1998). Orientation tuning curves: empirical description and estimation of parameters. Biol Cybern, 78(1), 4556.  see Swindale, N. V. (1998). Orientation tuning curves: empirical description and estimation of parameters. Biol Cybern, 78(1), 4556.  
+  
+  ==Setting up a proxy in R on a Mac==  
+  The easiest way to set up a proxy is simply to create a file called ".Rprofile" (make sure the file does not have a .txt or .rtf extension. Textwrangler will automatically give it an extension, it may be best to create the file using Vi in a terminal  using emacs probably won't work) in your user directory (~ or /Users/username/) with the line:  
+  <code>  
+  Sys.setenv(http_proxy=”http://username:password@tcdproxy.tcd.ie:8080″)  
+  </code>  
+  Then restart R.  
+  This information (and more) can be found on [http://www.kenbenoit.net/?p=261 Ken Benoit's webpage]  
+  
+  If you're at the Camperdown campus of the University of Sydney, use:  
+  <code>  
+  Sys.setenv(http_proxy=”http://wwwcache.usyd.edu.au:8080″)  
+  </code>  
+  
+  Note: The following may not necessarily be true anymore. If the below address does not work, use the same one as for Camperdown above.  
+  The Cumberland Campus of the University of Sydney, use:  
+  <code>  
+  Sys.setenv(http_proxy=”webcacheext.usyd.edu.au:8080″)  
+  </code> 
Current revision
Members• Alex Holcombe 
Projects• Testing Booth Calendar 

Technical• Skills Checklist 
Other• Plots,Graphs

R is an interactive programming language for statistics. The syntax is very idiosyncratic, and not really in a good way. Try R for programmers for a description. However it may have menudriven versions maybe available R commander we haven't tried that and another one is pmg GTK maybe here
In the lab we have the book Using R for Introductory Statistics. R_Statistics introduces you to R
Dani has posted some example code and graphs on his personal website.
R reference cheatsheet, also a file here Media:Matlabpythonxref.pdf that gives equivalent code for doing array operations in MATLAB, Python, and R plot parameters
There is a wiki with some good tips here. Also Data frame tips, list of R websites
Functions in R can only return one parameter.
dataframe tips
Examining your data frame or object, let's say it's called datos
typeof(datos) #returns "list!" str(datos) #tells you it's a dataframe, number of observations, columns, etc head(datos) str(datos) summary(datos) #good for ggplot objects also
df$varWithExtraLevels = factor(df$varWithExtraLevels)
length(df) #number of columns of dataframe
names(df) #names of columns of dataframe
library(Hmisc); describe(df)
#Calling typeof() on a dataframe returns "list"
rm(objectToBeDeleted) rm(list = ls()) #Delete nearly everything in memory
expand.grid() to create dataframe with every combination of some factors
Check your counterbalancing in your results file. Make a contingency table,
table(dataRaw$speed,dataRaw$relPhaseOuterRing)
Replace certain value with another
thr$thresh[ thr$task=='ident' ] = NA
Creating Graphs (usu. ggplot2)
how I Holcombe:fit psychometric functions and bootstrap
See http://openwetware.org/wiki/Holcombe:Plotting
Debugging in R
How to examine and try things with a questionable variable within a function?
ee << resultsMeans #make global, violating all principles of good coding #DEBUG STOP
After an error, calling traceback() gives you the stack
doing ANOVAs etc
ANOVA with repeated measures walkthrough
R will assume factor is regressor if numeric
I think I had too many error terms reducing error terms
Anovas with repeated measures can be complicated in R.
We have some R books in the lab
Dealing with circular data
von Mises vs. wrapped Gaussian,
see Swindale, N. V. (1998). Orientation tuning curves: empirical description and estimation of parameters. Biol Cybern, 78(1), 4556.
Setting up a proxy in R on a Mac
The easiest way to set up a proxy is simply to create a file called ".Rprofile" (make sure the file does not have a .txt or .rtf extension. Textwrangler will automatically give it an extension, it may be best to create the file using Vi in a terminal  using emacs probably won't work) in your user directory (~ or /Users/username/) with the line:
Sys.setenv(http_proxy=”http://username:password@tcdproxy.tcd.ie:8080″)
Then restart R.
This information (and more) can be found on Ken Benoit's webpage
If you're at the Camperdown campus of the University of Sydney, use:
Sys.setenv(http_proxy=”http://wwwcache.usyd.edu.au:8080″)
Note: The following may not necessarily be true anymore. If the below address does not work, use the same one as for Camperdown above.
The Cumberland Campus of the University of Sydney, use:
Sys.setenv(http_proxy=”webcacheext.usyd.edu.au:8080″)