# Holcombe:ProgrammingInR

Alex Holcombe
• Ryo Nakayama

### Other

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 menu-driven 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:Matlab-python-xref.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
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

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

## 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 walk-through

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), 45-56.